2011-02-09 95 views
0

我有兩個模型,model_1和model_2。Ruby on Rails - 爲一對多關係獲取「Mysql2 :: Error:Unknown column」

model_1.rb:

has_many :model_2s 

model_2.rb:

belongs_to :model_1 

但是,當我嘗試做@model_1.model_2s我得到以下錯誤:

ActionView::Template::Error (Mysql2::Error: Unknown column 'model_2.model_1_id' in 'where clause': SELECT `model_2`.* FROM `sketches` WHERE (`model_2s`.model_1_id = 1)) 

我有同樣的問題使用SQLite3。先謝謝您的幫助。

+1

您是否爲外鍵添加了遷移索引? – John 2011-02-09 16:46:34

回答

1

has_many默認依賴約定。

has_many :model_2s

將使用列「model_1_id」中的「model_2」表默認情況下查找「model_1」它屬於(嘿,你選擇的機型名稱;))。但你似乎錯過了那一列。

由於未知原因(除非您提供遷移文件),表格缺少該列。

+0

糟糕...我沒有把它放到我的遷移文件中! – SZH 2011-02-09 16:55:07