Как получить доступ к связанной модели через другую модель в Rails?

ОБНОВЛЕНИЕ (конкретная и более подробная предыдущая версия приведена ниже):

Я занимаюсь разработкой веб-сайта телевизионной станции. Вот требования к моему разделу Программы:

Each Program has ONE Category. Each Program has ONE Subcategory. Each Category has MANY Subcategories Each Category has MANY Programs. Each Subcategory has ONE Category Each Subcategory has MANY Programs.

Я хочу восстановить все эти три модели, которые будут связаны. Например, я должен быть в состоянии получить данные ниже из моих представлений:

В то время как:

p = Program.find(1)
p_cat = ProgramCategory.find(1)
p_subcat = ProgramSubcategory.find(1)

Я должен быть в состоянии получить, а также редактировать эти:

p.program_category
p.program_subcategory

или же

program_category.programs
program_subcategory.programs

Вы можете увидеть, что я пытался ниже для достижения этих требований. Вы можете порекомендовать мне совершенно другой способ или исправить мои ошибки.

Спасибо

============================================================

У меня есть 3 модели. Они должны быть вложены друг в друга.

ProgramCategory > ProgramSubcategory > Program

Вот мои коды:

ProgramCategory модель:

 has_many :programs
 has_many :program_subcategories

Программа подкатегории модели:

belongs_to :program_category
has_many :programs

Модель программы:

belongs_to :program_category
belongs_to :program_subcategory

Когда я создаю новую Программу, я могу установить ее категорию, и все в порядке. Я могу получить к ним доступ с обеих сторон. Например,

program.program_category

дает мне то, что я ожидал. а также

program_category.programs

дает мне то, что я тоже хочу иметь.

НО, -here comes the question-

Когда я пытаюсь получить доступprogram.program_subcategoryЯ получаю только ноль.

Несмотря на то, что категория моей подкатегории установлена и категория моей программы также установлена, почему я не могу получить к ней доступprogram.program_subcategory напрямую?

Когда я печатаюprogram_category.program_subcategoriesЯ получаю все подкатегории, принадлежащие этой категории. Но я не могу получить подкатегории напрямуюProgram объект.

Моя схема ниже. Любая помощь ценится.

ActiveRecord::Schema.define(:version => 20120926181819) do

  create_table "program_categories", :force => true do |t|
    t.string   "title"
    t.text     "content"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  create_table "program_subcategories", :force => true do |t|
    t.integer  "program_category_id"
    t.string   "title"
    t.text     "content"
    t.datetime "created_at",          :null => false
    t.datetime "updated_at",          :null => false
  end

  add_index "program_subcategories", ["program_category_id"], :name => "index_program_subcategories_on_program_category_id"

  create_table "programs", :force => true do |t|
    t.integer  "program_category_id"
    t.integer  "program_subcategory_id"
    t.string   "title"
    t.text     "content"
    t.datetime "created_at",             :null => false
    t.datetime "updated_at",             :null => false
  end

  add_index "programs", ["program_category_id", "program_subcategory_id"], :name => "my_join1", :unique => true

end

Ответы на вопрос(1)

Ваш ответ на вопрос