我添加了我的模型关联belongs_to但没有列添加到合适的表中

时间:2013-03-12 08:53:49

标签: ruby-on-rails

我有2个名为class1和student的模型,在我创建它们之后,我添加了关联。 然后我的模型是:

class Student < ActiveRecord::Base
  attr_accessible :address, :birthdate, :name
  belongs_to :class1
end

class Class1 < ActiveRecord::Base
  attr_accessible :name
  has_many :students
end

我尝试通过rails console为模型创建实例:

2.0.0-p0 :001 > c=Class1.new(:name=>"A")
 => #<Class1 id: nil, name: "A", created_at: nil, updated_at: nil> 
2.0.0-p0 :002 > c.save
   (0.1ms)  BEGIN
  SQL (0.2ms)  INSERT INTO `class1s` (`created_at`, `name`, `updated_at`) VALUES ('2013-03-12 08:40:03', 'A', '2013-03-12 08:40:03')
   (40.7ms)  COMMIT
 => true 

但是当我尝试为课程添加学生时,我收到了一个错误:

2.0.0-p0 :003 > s=c.students.build:name=>"Moshe"
ActiveRecord::UnknownAttributeError: unknown attribute: class1_id

数据库中真的不存在列class_id - 为什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

您有责任为该协会添加适当的迁移。

在控制台中:

rails g migration add_class1_references_to_students class1:references

然后:

rake db:migrate