我正在尝试使用外键在rails上实现has_many和belongs_to关系但是我在尝试正确实现它时遇到了麻烦,任何帮助都将受到赞赏。我也将此作为指南:http://guides.rubyonrails.org/association_basics.html
这两个模型是主题和课程。一门学科有很多课程,一堂课属于一门学科。外键是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
我不确定这个实现在哪里出错,因为我无法从主题中检索课程。我的Lesson数据库表也有一个subject_code列。
在弄乱的时候,我发现如果我的主题模型我做了以下更改
has_many :lessons,
:foreign_key => "lesson_id"
我能够检索有关课程的信息,但是将lesson_id绑定到subject_id。但是,将外键更改为subject_code,它不起作用,我只是为什么感到困惑。
任何帮助都将不胜感激。
答案 0 :(得分:4)
has_many :lessons, :primary_key => "subject_code"