Ruby on Rails - 获取一对多关系的“Mysql2 ::错误:未知列”

时间:2011-02-09 16:40:37

标签: ruby-on-rails database one-to-many

我有两个模型,model_1和model_2。

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 个答案:

答案 0 :(得分:1)

默认情况下,has_many依赖于约定。

has_many :model_2s

默认使用“model_2”表中的“model_1_id”列来查找它所属的“model_1”(嘿,你选择了模型的名称;))。但你似乎错过了那一栏。

由于原因未知(除非您提供迁移文件),您的表格缺少该列。