2016-09-15 62 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

請分享您的遷移。好像你沒有在外星人中加入外星人的外鍵。