2013-03-12 28 views
0

我有2個模型命名爲class1和學生,創建它們後,我添加了關聯。 然後我的車型有:我添加了我的模型關聯belongs_to,但沒有列添加到合適的表

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

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

我試圖通過導軌控制檯模型創建實例:

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確實不存在於數據庫中 - 爲什麼? 謝謝!

回答

0

您有責任爲該關聯添加適當的遷移。

在控制檯:

rails g migration add_class1_references_to_students class1:references 

然後:

rake db:migrate 
+0

確保你不要忘了添加索引。 – jvnill 2013-03-12 09:02:25

+0

使用'參考'時,遷移生成器始終添加標記。 – MikDiet 2013-03-12 09:06:23

+0

我不確定在哪個rails版本'class1:references'出現..可能只有在4.beta。無論如何,您需要遷移才能爲此添加'class1_id'列和索引。 – MikDiet 2013-03-12 09:08:30

相關問題