Próbuję zaimplementować relację has_many i belongs_to na szynach z kluczem obcym, ale mam problem z próbą implementacji go prawidłowo, każda pomoc byłaby doceniana. Używam tego również jako przewodnika: http://guides.rubyonrails.org/association_basics.htmlSzyny has_many i belongs_to relacja z obcym kluczowym błędem
Obydwa modele są przedmiotem i lekcjami. Przedmiot ma wiele lekcji, a lekcja należy do tematu. Klucz obcy to kod podmiotu.
Poniżej podano odpowiednie kody.
Dotyczy modelu
class Subject < ActiveRecord::Base
:subject_code,
:subject_name
:lessons_attributes
has_many :lessons,
:foreign_key => "subject_code"
accepts_nested_attributes_for :lessons,
:allow_destroy => true
end
Model lekcja.
Nie jestem pewien, gdzie popełniłem błąd w związku z tą implementacją, ponieważ nie mogę pobrać lekcji z tematu. Moja tabela bazy danych lekcji ma już kolumnę dla kodu podmiotu.
Podczas aprowizacji, stwierdziliśmy, że jeśli do mojego modelu z zastrzeżeniem, że należy wprowadzić następujące zmiany
has_many :lessons,
:foreign_key => "lesson_id"
udało mi się pobrać informacji o lekcjach, ale z lesson_id przywiązany do subject_id. Jednak zmiana klucza obcego na subject_code nie zadziałała, a ja po prostu nie rozumiem, dlaczego.
Każda pomoc zostanie doceniona.
usunąć ': foreign_key => "subject_code"' 'w modelu Subject'. – VenkatK
Otrzymuję ten błąd, gdy robię to. SQLite3 :: SQLException: brak takiej kolumny: lessons.subject_id: SELECT "lekcje". * Z "lekcji" GDZIE "lekcje". "Subject_id" = 8 –