1

我有一个tutorial模型和一个tutorial_category模型。我使用has_many belongs_to关系将两者联系在一起。在我的教程索引视图中,我正在循环浏览教程,如下所示:<% @tutorials.each do |tutorial| %>. 在该循环中,我想显示每个教程所属的类别。我正在尝试这样做<%= tutorial.tutorial_categories.title %>(标题是 tutorial_category 模型中的一个属性,并且我也有 :tutorial_id 作为 tutorial_category 模型中的一个属性。并且 :tutorial_category_id 是教程模型中的一个属性,就此而言)。

这是我的教程控制器中的索引操作:

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 代码了,所以我可能在这里遗漏了一些愚蠢的东西。任何帮助,将不胜感激!

更新:我的模型

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
4

1 回答 1

0

If you want to be able to list the tutorial categories next to tutorials then do the following:

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

Then you can iterate over them

<% @tutorials.each do |tutorial| %>
  <%= tutorial.tutorial_category.title %>
<% end %>
于 2013-04-20T05:28:44.933 回答