1

私はtutorialモデルとモデルを持っていtutorial_categoryます。has_many belongs_toリレーションシップを使用して 2 つをリンクしました。私のチュートリアルのインデックス ビューでは、次のようにチュートリアルをループしています<% @tutorials.each do |tutorial| %>。そのループ内で、各チュートリアルが属するカテゴリを表示したいと考えています。私はそれを次のようにしようとしています<%= tutorial.tutorial_categories.title %>(タイトルはtutorial_categoryモデルの属性であり、tutorial_categoryモデルの属性として:tutorial_idもあります。また、: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

チュートリアルの横にチュートリアル カテゴリを一覧表示できるようにするには、次の手順を実行します。

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

次に、それらを反復処理できます

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