2017-10-20 2 views
2

私は働いているレシピアプリを持っているので、何か表示されない理由を理解できません。私はレシピをジョインテーブルとして使用していますが、わかりやすくするために私は3つの他のテーブルとともにそれを含めました。このアプリの目的のために、私が表示したいのは、各モデルに関連付けられた名前だけです。Ruby on Railsでの結合テーブルの正しい関連付けは何ですか?

私は次のモデルがあります: 野菜 プロテイン 澱粉 レシピ

レシピが参加するテーブルとして機能しているされています

belongs_to :vegetable 
belongs_to :protein 
belongs_to :starch 
accepts_nested_attributes_for :vegetable, :protein, :starch 

は、他のモデルは、それぞれがあります。

has_one :recipe 

私の考えは単純な繰り返しでした。

<table> 
<thead> 
<tr> 
<th> Vegetable Name </th> 
<th> Protein Name </th> 
</tr> 
</thead> 
<% @recipes.each do |recipes| %> 
<tr> 
<td> <%= recipe.vegetable.name %> <td> 
<td> <%= recipe.protein.name %> <td> 
</tr> 

ただし、ヘッダーを超えて何も起こっていません。私は、レシピをレシピに変更したり、各列の最後にレシピを引数として渡すなど、反復でさまざまなことを行ってきました。

def recipe_params 
params.require(:recipe).permit(:vegetable_id, :protein_id, :starch_id) 
end 

は私の団体で、私が間違っていると、それは何かを提示していない理由です:私は私のレシピコントローラは、以下の持っていることを確認して作りましたか?

+0

'@ recipes'の値は何ですか?それを初期化するコードを表示できますか? – hoffm

+0

データベースにいくつかのデータを表示してもよろしいですか? – kolas

答えて

2

私は誤植だと思います。これを使用してください:

<% @recipes.each do |**recipe**| %> 
    <tr> 
    <td><%= recipe.vegetable.name %><td> 
    <td><%= recipe.protein.name %><td> 
    </tr> 
<%end%>