5

我正在尝试使用外键在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

我不确定这个实现哪里出了问题,因为我无法从一个主题中检索课程。我的课程数据库表也已经有一个 subject_code 列。

在搞砸的时候,我发现如果我对我的主题模型进行以下更改

  has_many :lessons,
           :foreign_key => "lesson_id"

我能够检索有关课程的信息,但将课程 ID 绑定到主题 ID。但是,将外键更改为 subject_code,它不起作用,我只是对为什么感到困惑。

任何帮助,将不胜感激。

4

1 回答 1

5

在主题模型中

has_many :lessons, :primary_key => "subject_code"
于 2013-01-05T07:06:24.037 回答