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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top