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) %>