私は「facebook like」のような関係を実装しようとしています。 user_idを持つサブタスクに「has_many」を指定して間違ったsql要求が行われました
のお気に入り::整数属性 |> PostsLike post_idのと同じように継承します。 私はそのための継承を使用したかったので、ここに私の構造だ整数属性
だからここに私のLike.rbモデルです。
class Like < ActiveRecord::Base
belongs_to :user
end
そして、私のPostLike.rbモデル:
3210そして最後に、私はポストモデルを持っています複数postlikesオブジェクトを持っています:
class Post < ActiveRecord::Base
has_many :postlikes
end
しかし、ここでは私の問題だ、私はIRCとそのに行くとき:
ルビー-1.9.2-P290:
私はPostオブジェクトを取得します:001> @p = Post.all.first
私は、このオブジェクトのpostlikesを取得しようは、ここではSQL文です:
SELECT
likes
。* FROMlikes
WHERElikes
。type
IN( 'ポストライティング')ANDlikes
= 310post_id
だから、基本的に代わり
postlikes.post_id
Railsのそれを修正する
likes.post_id
をやって任意のアイデアをしているの?
で "単一テーブル継承" の章を参照してください何の表がありません:それは声明を説明Mysql2を::エラー: 'where句'の 'likes.post_id'列が不明です:SELECT 'likes'。* FROM' likes' WHERE 'likes'.'type' IN( 'Postlike')AND' l ikes'.post_id' = 310 –
マイグレーションを作成して、テーブル "likes"に "post_id"というカラムを追加し、その後に 'rake db:migrate'を実行しましたか? – Baldrick
ええ、問題は、私は 'rail g model postslike ...'を使ってポストライクモデルを生成し、それを類似モデルから継承させたので、列をマイグレーションするのを忘れてしまったということでした。 ありがとう、愚かな問題と質問:)ありがとう –