ユーザーがレシピを追加し、お気に入りのレシピを選択してメンバーエリアに表示できるアプリがあります。お気に入りを選択すると、user_id、recipe_idを取得して、favourite_idを指定できます。
私がやりたいのは、料理名、country_of_originなどの実際のレシピを(お気に入りとして)ビューに出力することです。これは実際のレシピで実行できますが、お気に入りではありません。これにはhas_many_throughを使用する必要がありますか?
私のモデルはこんな感じ
ユーザー
has_many :recipes
has_many :favourites
レシピ
belongs_to :user
has_many :ingredients
has_many :preperations
has_many :favourites
お気に入り
belongs_to :user
belongs_to :recipe
attr_accessible :user_id, :recipe_id
私のコントローラー
@favourites = current_user.favourites
私のlink_to投稿
<%= link_to "Add to favorites", {:controller => 'favourites', :action => 'create', :recipe_id => r.id}, {:method => :post } %>
私は現在のユーザーのレシピをリストすることができます、これはこれのための私のコントローラーです
@recipes = current_user.recipes if current_user.recipes
そしてそれらをそのようにビューに出力します
<% @recipes.each do |r| %>
<tr>
<td><%= r.dish_name %></td>
<td><%= r.country_of_origin %></td>
<td><%= r.difficulty %></td>
<td><%= r.preperation_time %></td>
<td><%= ingredient_names(r.ingredients) %></td>
<td><%= preperation_steps(r.preperations) %></td>
<td><%= image_tag r.avatar.url(:thumb)%></td>
<tr>
だから私がビューでこれを行う場合
<li><%= @favourites %></li>
これを出力します
<Favourite id: 16, user_id: 8, recipe_id: 21, created_at: "2012-11-07 20:24:39", updated_at: "2012-11-07 20:24:39">]
やってみたら
<%= @favourites.dish_name %>
次に、エラーundefinedmethoddish_nameが表示されます
ビューに表示するレシピモデルのパラメータを取得するにはどうすればよいですか。私はそれがうまくいかないことをお詫びします、それは私が推測する本当に簡単なはずですか?
助けていただければ幸いです