Sto tentando di implementare una relazione has_many e belongs_to su rotaie con una chiave esterna ma ho difficoltà a provare a implementarla correttamente, qualsiasi aiuto sarebbe apprezzato. Sto anche usando questo come guida: http://guides.rubyonrails.org/association_basics.htmlRails has_many e belongs_to rapporto con l'errore della chiave esterna
I due modelli sono soggetti e lezioni. Un soggetto ha molte lezioni e una lezione appartiene a un argomento. La chiave esterna è subject_code.
Quanto segue è il codice pertinente.
Soggetto Modello
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
Il modello lezione.
class Lesson < ActiveRecord::Base
attr_accessible :lesson_id,
:lesson_type,
:subject_code
belongs_to :subject,
:class_name=>"Subject",
:foreign_key=>"subject_code"
end
Non sono sicuro di dove ho sbagliato con questa implementazione perché non riesco a recuperare le lezioni da un argomento. La mia tabella di database per lezione ha già una colonna per subject_code.
Mentre fare in giro, ho scoperto che se per il mio modello soggetto ho apportare le seguenti modifiche
has_many :lessons,
:foreign_key => "lesson_id"
sono stato in grado di recuperare le informazioni sulle lezioni, ma con la lesson_id legata al icLsoggetto. Tuttavia, avendo la chiave esterna modificata in subject_code, non ha funzionato e sono solo confuso sul perché.
Qualsiasi aiuto sarebbe apprezzato.
rimuovere il ': foreign_key => "subject_code"' in 'modello subject'. – VenkatK
Viene visualizzato questo errore quando lo faccio.S.SQLite3 :: SQLException: nessuna di queste colonne: lessons.subject_id: SELECT "lessons". * FROM "lessons" WHERE "lessons". "Subject_id" = 8 –