这工作得很好,不知道是什么破坏了它,但现在我收到了这个错误:
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?