2013-04-20 2 views
1

У меня есть модель tutorial и модель tutorial_category. Я связал их вместе, используя связь has_manybelongs_to. В моем представлении индексов учебников я просматриваю такие учебники: <% @tutorials.each do |tutorial| %>. Внутри этого цикла я хочу показать категорию, к которой относится каждый учебник. Я пытаюсь сделать это как <%= tutorial.tutorial_categories.title %> (название - attr в модели tutorial_category, и у меня также есть: tutorial_id как атрибут в модели tutorial_category. И: tutorial_category_id - это attr в учебной модели, если на то пошло).Rails - показать, к какой категории относится учебное пособие в указательном указателе

Здесь индекс действие в моем контроллере учебников:

def index 
    @tutorials = Tutorial.all 
    @tutorial = Tutorial.new 
    @tutorial_categories = TutorialCategory.select("DISTINCT title, id") 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render :json => @tutorials } 
    end 
end 

Я не могу понять, что я делаю неправильно здесь. По моему опыту, все должно работать правильно, хотя прошло несколько месяцев с тех пор, как я написал любой код Ruby, поэтому мне, вероятно, не хватает чего-то глупого здесь. Любая помощь будет оценена!

Update: мои модели

class Tutorial < ActiveRecord::Base 
    attr_accessible :content, :title, :tutorial_category_id 
    belongs_to :tutorial_category 
end 

class TutorialCategory < ActiveRecord::Base 
    attr_accessible :title, :tutorial_id 
    has_many :tutorials 
end 

ответ

0

Если вы хотите, чтобы иметь возможность перечислить учебник категории рядом учебники, то сделайте следующее:

def index 
    @tutorials = Tutorial.includes(:tutorial_category) 
    @tutorial = Tutorial.new 
    ... 
    end 
end 

Тогда вы можете перебирать их

<% @tutorials.each do |tutorial| %> 
    <%= tutorial.tutorial_category.title %> 
<% end %> 
+0

Учебные категории has_many tutorials. Я пытаюсь сделать то, что вы дали для этого, но я все еще получаю неопределенный метод для «title» –

+0

В вашем вопросе вы написали 'tutorial.tutorial_categories.title', убедитесь, что он сингулярный, как в моем ответе, а не множественное число. Также убедитесь, что вы выполнили все свои миграции. Возможно, вы также должны добавить модели к своему вопросу. –

+0

Да, я сделал это сингулярным. Обновлен мой вопрос w/модели –