5

Ich versuche, eine HAS_MANY und ONETS_TO Beziehung auf Schienen mit einem Fremdschlüssel zu implementieren, aber ich habe Probleme mit dem Versuch, es richtig zu implementieren, würde jede Hilfe geschätzt werden. Ich benutze das auch als Anleitung: http://guides.rubyonrails.org/association_basics.htmlRails has_many und properties_to Beziehung mit Fremdschlüsselfehler

Die beiden Modelle sind Thema und Lektionen. Ein Fach hat viele Lektionen und eine Lektion gehört zu einem Fach. Der Fremdschlüssel ist subject_code.

Das Folgende sind die relevanten Codes.

Gegenstand Modell

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 

Die Lektion Modell.

Ich bin nicht sicher, wo ich mit dieser Implementierung falsch gelaufen bin, weil ich die Lektionen von einem Thema nicht abrufen kann. Meine Datenbanktabelle für Lesson hat bereits eine Spalte für subject_code.

Während Herumspielen, fand ich, dass, wenn für mein Thema Modell, das ich folgendes machen

has_many :lessons, 
      :foreign_key => "lesson_id" 

konnte ich ändert die Information über die Lektionen, aber mit dem lesson_id gebunden an die subject_id abzurufen. Wenn der Fremdschlüssel jedoch in subject_code geändert wurde, hat es nicht funktioniert, und ich bin nur verwirrt, warum.

Jede Hilfe wäre willkommen.

+0

entfernen Sie die ': foreign_key => "subject_code"' in 'Subject' Modell. – VenkatK

+0

Ich bekomme diesen Fehler, wenn ich das tue.SQLite3 :: SQLException: keine solche Spalte: lesses.subject_id: SELECT "Lektionen". * FROM "Lektionen" WHERE "Lektionen". "Subject_id" = 8 –

Antwort

4

in Betreff Modell

has_many :lessons, :primary_key => "subject_code" 
+0

Danke. Allerdings bekomme ich diesen Fehler. SQLite3 :: SQLException: keine solche Spalte: lesses.subject_id: SELECT "Lektionen". * FROM "Lektionen" WHERE "Lektionen". "Subject_id" = "CM101" nachdem dies gemacht wurde. –

+0

Scheint wie es einfacher sein könnte, nur die rails Konvention der Verwendung von subject_id folgen –

Verwandte Themen