belongs_to
associazione aspettarsi una colonna association_id
nella sua tabella corrispondente. Poiché le auto appartengono all'utente, la tabella delle macchine deve avere una colonna user_id
. Questo può essere realizzato in 2 modi.
prima, è possibile generare la colonna quando si crea il modello
rails g model car user_id:references
o semplicemente aggiunge l'user_id dopo aver creato il modello come la risposta di Richard Brown. Fai attenzione che se usi integer
invece di references
, dovresti creare tu stesso l'indice.
rails g migration add_user_id_to_cars user_id:integer
poi nella migrazione generato, aggiungere
add_index :cars, :user_id
UPDATE:
Come Joseph ha detto nei commenti, la necessità di aggiungere l'indice manualmente è già stato affrontato nella versione attuale di Rails. Penso che sia stato introdotto in Rails 4. Puoi leggerne altre nello official Rails guide for migrations. L'essenza di esso esegue il seguente generatore
bin/rails g migration add_user_to_cars user:references
creerà una migrazione con una linea simile a
add_reference :cars, :user, index: true
Questo aggiunge una colonna user_id
alla tabella autoveicoli e sarà anche contrassegnare quel colonna essere indicizzato
non avete bisogno di un tavolo 'cars_users' in quanto non si dispone di una relazione molti-a-molti. – Zippie