Rails - Activecord Associations
-
12-11-2019 - |
Domanda
Funzionava bene, non sono sicuro di cosa lo abbia rotto, ma ora sto ricevendo questo errore:
undefined method `Name' for nil:NilClass
Sto correndo Rails 3.1. Ho un tavolo chiamato "Restaurants", "List" e "List_Items". Le associazioni sono le seguenti:
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
La riga che mi sta dando il problema è nella vista parziale che visualizza i miei elementi dell'elenco
<tr>
<td><%= list_item.restaurant.Name %> <%= link_to 'X', list_item, :method => :delete, :remote => true %></td>
</tr>
Penso che questo dovrebbe funzionare bene, ma dato l'errore in cima, non sta raccogliendo l'associazione in modo da poter ottenere al nome del ristorante. Ancora una volta, funzionava, non so perché si stia spezzando ora ...
AGGIORNARE
Come ha sottolineato correttamente MU (grazie MU), il problema non è l'associazione, era la presenza di un elenco_item associato a un ristorante eliminato. Quindi, si stava correndo contro una voce di nulla.
Quanto sopra è risolto e ora la vera domanda (la domanda che avrei dovuto fare per cominciare) è come assicurarsi che ciò non accada. Cosa dovrei cambiare per garantire che un elenco_item venga eliminato quando il ristorante associato viene eliminato?
Nessuna soluzione corretta