我有一个应用程序,它允许用户添加食谱,然后选择他们最喜欢的食谱以在他们的会员区查看,我可以选择一个最喜欢的,我得到 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 "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 %>
然后我得到错误未定义的方法dish_name
我如何让配方模型的参数显示在视图中。我很抱歉只是无法解决,我猜这应该很容易吗?
任何帮助表示赞赏