Ruby on rails 使用“属于”关联时列表视图中未定义的方法
出于某种奇怪的原因,我的列表视图中的关联并不一致。 在我的模型中,我有:Ruby on rails 使用“属于”关联时列表视图中未定义的方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,出于某种奇怪的原因,我的列表视图中的关联并不一致。 在我的模型中,我有: Class Restaurant < ActiveRecord::Base has_many :menus Class Menu < ActiveRecord::Base Belongs_to :restaurant 我认为: <% = menus.each do |menu| %> <h4><%= menu.restaurant.name %></h
Class Restaurant < ActiveRecord::Base
has_many :menus
Class Menu < ActiveRecord::Base
Belongs_to :restaurant
我认为:
<% = menus.each do |menu| %>
<h4><%= menu.restaurant.name %></h4>
<% end %>
我得到了未定义的方法“name”。名称是餐厅表中的一列
但是,当我使用<%=@menu.restaurant.name%>
时,它可以在我的show视图中正常工作
我正在使用rails 3.2.9和ruby 1.9.3,您的
@菜单中至少有一个可能没有关联的餐厅
尝试在控制台中键入菜单。包括(:restaurant)。每个{m |放入m.id,除非m.restaurant}
,以查看是什么菜单
记录导致此问题。正如马瑞克·利普卡所说,您的菜单没有链接到餐厅
所以对menu.restaurant
的引用为零
如果打算在没有餐厅的情况下使用菜单,您可以在视图中绕过无参考:
<%= menu.restaurant.try(:name) %>
事情就是这样。谢谢。
<%= menu.restaurant.try(:name) %>