2011-02-09 58 views
0

私はmodel_1とmodel_2という2つのモデルを持っています。Ruby on Rails - 1対多の関係のために "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

答えて

1

has_manyは、デフォルトで慣例に依存しています。 );

has_many :model_2s

は「model_1は」それはに属しているものを見つけるために、デフォルトでは「model_2」テーブルの列「model_1_id」を使用します(ねえ、あなたは、モデルの名前を選びました)。しかし、あなたはそのコラムを見逃しているようです。

理由が不明なため(移行ファイルを指定しない限り)、表にその列がありません。

+0

おっと...私はそれをマイグレーションファイルに入れませんでした! – SZH

関連する問題