Ruby on rails Can';t在建立关联后插入数据-Ruby上的Rails

Ruby on rails Can';t在建立关联后插入数据-Ruby上的Rails,ruby-on-rails,Ruby On Rails,因此,我开始了一个关于Ruby的Rails课程,我刚刚谈到了关联部分。我有以下联想:一个外星人属于一个行星,并且说planed可以有很多外星人 My planet.rb: class Planet < ActiveRecord::Base has_many :aliens end 但它不起作用,我得到以下错误: a = Alien.create(nome: "x", age: "1", planet: p) ActiveModel::MissingAttributeError:

因此,我开始了一个关于Ruby的Rails课程,我刚刚谈到了关联部分。我有以下联想:一个外星人属于一个行星,并且说planed可以有很多外星人

My planet.rb:

class Planet < ActiveRecord::Base
    has_many :aliens
end
但它不起作用,我得到以下错误:

a = Alien.create(nome: "x", age: "1", planet: p)
ActiveModel::MissingAttributeError: can't write unknown attribute `planet_id`
你知道是什么原因造成的吗?

另外,由于英语不是我的母语,所以我对任何语法错误提前表示歉意。感谢您的帮助。

看起来您忘记添加行星id列了。检查db/schema.rb或数据库。您需要此外键才能将外星人与行星关联。

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

你有外星人表中的野外行星id吗?
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`