belongs_to
stowarzyszenie oczekiwać kolumnę association_id
w to odpowiedni stół. Ponieważ samochody należą do użytkownika, tabela samochodów powinna mieć kolumnę user_id
. Można to osiągnąć na dwa sposoby.
pierwsze, można wygenerować kolumny podczas tworzenia modelu
rails g model car user_id:references
lub po prostu dodać user_id po utworzeniu modelu podobnego odpowiedź Richarda Browna. Pamiętaj, że jeśli używasz integer
zamiast references
, musisz sam utworzyć indeks.
rails g migration add_user_id_to_cars user_id:integer
następnie w wygenerowanym migracji dodać
add_index :cars, :user_id
UPDATE:
Jak Józef wspomniał w komentarzach, trzeba dodać indeks ręcznie zostało już uwzględnione w aktualnej wersji Rails. Myślę, że został wprowadzony w Railsach 4. Możesz przeczytać więcej tego w official Rails guide for migrations. Istotą jest uruchomiony następujący generator
bin/rails g migration add_user_to_cars user:references
stworzy migrację z linii podobnej do
add_reference :cars, :user, index: true
To doda kolumnę user_id
do stołu samochodów i będzie to również oznaczać, że kolumnę być indeksowane.
nie masz potrzebę 'cars_users' tabeli, ponieważ nie ma wiele do wielu relacji. – Zippie