我有两个模型,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时遇到同样的问题。在此先感谢您的帮助。
答案 0 :(得分:1)
默认情况下,has_many依赖于约定。
has_many :model_2s
默认使用“model_2”表中的“model_1_id”列来查找它所属的“model_1”(嘿,你选择了模型的名称;))。但你似乎错过了那一栏。
由于原因未知(除非您提供迁移文件),您的表格缺少该列。