0

这是我的课程模型

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">
4

2 回答 2

2

attr_accessor :course_id在您的Lesson模型中删除。这将覆盖活动记录的默认行为。

于 2013-03-15T13:02:59.430 回答
2

您需要删除attr_accessor :course_id模型中的行。如果你有这一行,它会在你的模型中创建以下与默认定义的方法冲突

def course_id
  @course_id
end

def course_id=(cid)
  @course_id = cid
end
于 2013-03-15T13:03:10.513 回答