これは問題なく機能し、何が問題を引き起こしたのかはわかりませんが、次のエラーが発生します。
undefined method `Name' for nil:NilClass
Rails3.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が確実に削除されるようにするには、何を変更する必要がありますか?