2016-09-15 86 views
2

所以我开始了Ruby课程的Rails,并且我刚刚接触了关联部分。我有以下协会:一个外星人属于一个星球,并说计划可以有很多外星人。无法在创建关联后插入数据 - Ruby上的Rails

我planet.rb:

class Planet < ActiveRecord::Base 
    has_many :aliens 
end 

我alien.rb:

class Alien < ActiveRecord::Base 
    belongs_to :planet 
end 

我有2个行星插在

Planet Load (0.2ms) SELECT "planets".* FROM "planets" 
=> #<Enumerator: #<ActiveRecord::Relation [#<Planet id: 1, nome: "planeta loko", created_at: "2016-09-15 19:49:28", updated_at: "2016-09-15 19:49:28">, #<Planet id: 2, nome: "planeta2", created_at: "2016-09-15 19:49:49", updated_at: "2016-09-15 19:49:49">] 

所以我被告知要插入可见外星人数据如下:

p = Planet.find(1) 
a = Alien.create(nome: "x", age: "1", planet: p) 

它不工作,虽然,我得到这个错误:

a = Alien.create(nome: "x", age: "1", planet: p) 
ActiveModel::MissingAttributeError: can't write unknown attribute `planet_id` 

是什么原因造成这样的任何想法?
另外,因为英语不是我的母语,所以对于任何格式错误都提前抱歉。感谢帮助。

+0

你有没有在外星人的领域planet_id? –

回答

0

看起来你忘了添加planet_id列。检查你的db/schema.rb或你的数据库。你需要这个外键把外星人与行星联系起来。

0

请分享您的迁移。好像你没有在外星人中加入外星人的外键。