所以我在Ruby课程上开始了一个Rails,我刚刚进入了Associations部分。我有以下关联:一个外星人属于一个星球,并且说计划可以有很多外星人。
我的星球.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 :(得分:0)
您似乎忘了添加planet_id列。检查db / schema.rb或数据库。你需要这个外键才能将外星人与行星联系起来。
答案 1 :(得分:0)
请分享您的迁移。看起来你没有为外星人添加外键。