1

这工作得很好,不知道是什么破坏了它,但现在我收到了这个错误:

undefined method `Name' for nil:NilClass

我正在运行 Rails 3.1。我有一个名为“restaurants”、“lists”和“list_Items”的表。关联如下:

class Restaurant < ActiveRecord::Base
  #relations
  has_many :list_items
  has_many :reviews

class List < ActiveRecord::Base
  has_many :list_items, :dependent => :destroy

class ListItem < ActiveRecord::Base
  belongs_to :restaurant
  belongs_to :list

给我问题的行是在显示我的列表项的视图部分中

<tr>
  <td><%= list_item.restaurant.Name %> <%= link_to 'X', list_item, :method => :delete, :remote => true %></td>
</tr>

我认为这应该一切正常,但考虑到顶部的错误,它并没有重新识别关联,以便我可以得到餐厅名称。再次,这是工作,我不知道为什么它现在打破了......

更新

正如 Mu 正确指出的那样(感谢 Mu),问题不在于关联,而是存在与已删除餐厅关联的 list_item。因此,它遇到了 Nil 条目。

上述问题已解决,现在真正的问题(我应该首先提出的问题)是如何确保不会发生这种情况。我应该更改什么以确保在删除关联的餐厅时删除 list_item?

4

1 回答 1

1
class Restaurant < ActiveRecord::Base

  has_many :list_items, :dependent => :destroy
  has_many :reviews
  ...

end

你很高兴。

于 2012-01-22T19:18:37.130 回答