Это работало просто отлично, не знаю, что сломало, но теперь я получаю эту ошибку:
undefined method `Name' for nil:NilClass
Я использую Rails 3.1. У меня есть таблица под названием «рестораны», «списки» и «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>
Я думаю, что все это должно работать нормально, но, учитывая ошибку наверху, это не означает, что ассоциация может быть такой же, как у ресторана. Опять же, это работало, я не знаю, почему это ломается сейчас ...
UPDATE
Как правильно заметил Му (спасибо Му), проблема не в ассоциации, а в присутствии list_item, связанного с удаленным рестораном. Итак, он столкнулся с нулевой записью.
Вышеуказанное решено, и теперь реальный вопрос (вопрос, который я должен был задать с самого начала), заключается в том, как этого избежать. Что я должен изменить, чтобы гарантировать удаление list_item при удалении соответствующего ресторана?