2015-08-22 38 views
1

這裏是我的問題: 我有2種型號,CompetitionCompetitiontypebelongs_to/has_many關係鏈接。試圖轉邁克爾·哈特爾的優秀教程(與用戶/微型柱),我成功地測試與建設時,我Competition模型是有效的:導軌 - 參考用下劃線模型的ID在belongs_to的關係

@competition = Competition.new(name: "Test", competitiontype_id: @competition_type.id) 
模型試驗中

但是,當我嘗試多一點「慣用正確」使用:

@competition = @competition_type.competitions.build(name: "Test") 

我得到關於「未知屬性competition_type_id」 我有我混錯用下劃線的感覺錯誤,但是這兩種配方應該是等效的。

任何線索我如何能糾正?

這是一個非常特殊的問題難以用幾個關鍵字來表達,我真的很抱歉,如果這已經在別的地方討論過(我沒有找到它)。

+0

您的'belongs_to'不僅僅是'belongs_to:competition_type'嗎?我還將'competition_type'編輯爲'Competitiontype',因爲前者不是有效的類名。請改正它,而不是'CompetitionType' –

+0

你可以發佈你的模型? – Pavan

+0

如果您有'CompetitionType'作爲類名,那麼您需要在'競賽表'中將'competitiontype_id'重命名爲'competition_type_id'。 – Pavan

回答

0

問題在於competitiontype_id錯字而沒有下劃線。它應該是competition_type_id。這可以從第一個代碼看出來

@competition = Competition.new(name: "Test", competitiontype_id: @competition_type.id) 

因此,在搜索屬於competition_type的比賽時找不到它。

只需將列competitiontype_id重命名爲competition_type_id並重構第一個發佈爲使用下劃線格式的代碼段。

+0

我使用新的遷移對列進行了重命名,調整了所有設備和測試,現在它們對於這兩種方法都是完美的。 – Jambz

相關問題