Rails belongs_to关联不起作用

时间:2013-03-15 12:41:57

标签: ruby-on-rails-3 activerecord

这是我的课程模型

class Course < ActiveRecord::Base
  attr_accessible :longdescription, :shortdescription, :title, :published_at
  has_many :lessons,  :foreign_key => 'course_id'
end

这是我的课程模型

class Lesson < ActiveRecord::Base
  belongs_to :course, :class_name => 'Course'
  attr_accessor :course_id
  attr_accessible :description, :title, :course_id
end

我创建了一个属于课程的课程。课程创建成功

 Lesson.create(:title => "testing", :description => "causing problems", :course_id => 1)

但是当我获取课程记录时,我得到了course_id = nil。任何帮助???

<Lesson id: 8, title: "testing", description: "causing problems", course_id: nil, created_at: "2013-03-15 12:56:36", updated_at: "2013-03-15 12:56:36">

2 个答案:

答案 0 :(得分:2)

删除attr_accessor :course_id模型中的Lesson。这将覆盖activerecord的默认行为。

答案 1 :(得分:2)

您需要删除模型中的attr_accessor :course_id行。如果您有此行,则会在模型中创建以下方法,这些方法与默认情况下定义的方法相冲突

def course_id
  @course_id
end

def course_id=(cid)
  @course_id = cid
end