Ruby on rails 3 Rails 3中的关联
我有一个应用程序,允许用户添加菜谱,然后选择他们最喜欢的菜谱,在他们的会员区查看。我可以选择一个最喜欢的菜谱,我会获取用户id,菜谱id,并给它一个最喜欢的id 我想做的是将实际配方输出到我的视图(作为最喜欢的),如菜名、原产国等。我可以使用实际配方,但不是最喜欢的配方。我需要使用has_many_to吗 我的模特看起来像这样 使用者 配方Ruby on rails 3 Rails 3中的关联,ruby-on-rails-3,associations,Ruby On Rails 3,Associations,我有一个应用程序,允许用户添加菜谱,然后选择他们最喜欢的菜谱,在他们的会员区查看。我可以选择一个最喜欢的菜谱,我会获取用户id,菜谱id,并给它一个最喜欢的id 我想做的是将实际配方输出到我的视图(作为最喜欢的),如菜名、原产国等。我可以使用实际配方,但不是最喜欢的配方。我需要使用has_many_to吗 我的模特看起来像这样 使用者 配方 belongs_to :user has_many :ingredients has_many :preperations has_many :favou
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.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\u name
如何使配方模型的参数显示在视图中。我真的很抱歉,只是无法解决问题,我想这应该很容易吧
任何受到欢迎的帮助最受欢迎的人只不过是维系了这段关系。 您可以通过以下方式访问该配方:
@favourites.recipe
然后,它将成为一个recipe对象,并包含您的属性,如菜名等。收藏夹只是保存关系。 您可以通过以下方式访问该配方:
@favourites.recipe
这将是一个配方对象,包含您的属性,如dish\u name等。您将获得未定义的dish\u name,因为您最喜欢的模型没有此类属性
@favorites=当前用户。favorites
返回收藏对象的数组
在你看来,你会这样做
<% @favourites.each do |f| %>
<%= f.recipe %>
<% end %>
将显示当前用户最喜爱的所有配方。您可以缩小它的范围,以显示特定的菜谱或其他内容。您会得到未定义的菜名,因为您最喜欢的型号没有此类属性
@favorites=当前用户。favorites
返回收藏对象的数组
在你看来,你会这样做
<% @favourites.each do |f| %>
<%= f.recipe %>
<% end %>
将显示当前用户最喜爱的所有配方。你可以缩小它的范围来显示一个特定的配方或什么。Favorites是一个数组,是吗?然后,您必须在@Favorites中循环,并分别处理每个元素:
<% @favourites.each do |favorite| %>
<%= favorite.recipe.dish_name %>
<% end %>
@Favorites是一个数组,是吗?然后,您必须在@Favorites中循环,并分别处理每个元素:
<% @favourites.each do |favorite| %>
<%= favorite.recipe.dish_name %>
<% end %>
我明白你的意思了,因为我必须从配方模型中获取参数,谢谢你的澄清,但是我现在得到了未定义的方法配方。。。你建议的是视图是吗?没错。我明白了,它之所以给你一个未定义的方法配方,是因为你从当前用户那里得到了什么。你需要做的是遍历数组,然后你就可以做你想做的事情了。让我更新我的回答我明白你的意思了,因为我必须从配方模型中获取参数,谢谢你澄清,但是我现在得到了未定义的方法配方。。。你建议的是视图是吗?没错。我明白了,它之所以给你一个未定义的方法配方,是因为你从当前用户那里得到了什么。你需要做的是遍历数组,然后你就可以做你想做的事情了。让我更新我的回答我明白你的意思了,因为我必须从配方模型中获取参数,谢谢你澄清,但是我现在得到了未定义的方法配方。。。你建议的是视图是吗?我明白你的意思,因为我必须从配方模型中获取参数,谢谢你澄清,但是我现在得到了未定义的方法配方。。。你所建议的是景观是吗?