在建立关联后无法插入数据 - Ruby上的Rails

时间:2016-09-15 20:24:33

标签: ruby-on-rails

所以我在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`

知道造成这种情况的原因是什么? 此外,对于任何语法错误提前抱歉,因为英语不是我的母语。感谢帮助。

2 个答案:

答案 0 :(得分:0)

您似乎忘了添加planet_id列。检查db / schema.rb或数据库。你需要这个外键才能将外星人与行星联系起来。

答案 1 :(得分:0)

请分享您的迁移。看起来你没有为外星人添加外键。