外部キーを使用してレール上に has_many と belongs_to の関係を実装しようとしていますが、正しく実装しようとすると問題が発生します。助けていただければ幸いです。これもガイドとして使用しています:http://guides.rubyonrails.org/association_basics.html
2 つのモデルは、サブジェクトとレッスンです。サブジェクトには多くのレッスンがあり、レッスンはサブジェクトに属します。外部キーは subject_code です。
以下は関連するコードです。
対象モデル
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
レッスンモデル。
class Lesson < ActiveRecord::Base
attr_accessible :lesson_id,
:lesson_type,
:subject_code
belongs_to :subject,
:class_name=>"Subject",
:foreign_key=>"subject_code"
end
サブジェクトからレッスンを取得できないため、この実装のどこで問題が発生したかはわかりません。レッスンのデータベース テーブルには、すでに subject_code の列もあります。
いじりながら、対象モデルに次の変更を加えるとわかりました
has_many :lessons,
:foreign_key => "lesson_id"
レッスンに関する情報を取得できましたが、lesson_id が subject_id に関連付けられていました。ただし、外部キーを subject_code に変更しても機能せず、その理由がわかりません。
どんな助けでも大歓迎です。