2010-12-13 8 views
1

構文が正しくないようです。これは簡単に解決できます。X datetimeの後に作成されたオブジェクトでfindを実行するための適切なSQL構文

私はlast_checked_mail

後に作成されたすべてのコメントオブジェクトを見つけようとしています私は...

current_user.comments.find(:all, :conditions => ["created_at > ?, current_user.last_checked_mail"]) 

を試みたが、それを返します:

ActiveRecord::PreparedStatementInvalid: wrong number of bind variables (0 for 1) 

答えて

2

あなたは間違った場所に文字列を終了します。それは次のようになります。

["created_at > ?", current_user.last_checked_mail] 

エラーメッセージは、あなたのバックアップする変数がありませんと言っている「を?」クエリ内にあります。それぞれの '?'クエリ文字列では、配列内にその疑問符にバインドされたオブジェクトが必要です。あなたには「?」があるのであなたのクエリでは、railsはその疑問符をバインドする1つの "バインド変数"を見つけることを期待しています。

これは、誤って使用しようとしていた変数を文字列が飲み込んだためです。

0

これを試してください。

あなたが引用符外に変数を配置する必要があり
current_user.comments.find(:all, :conditions => ["created_at > ?", current_user.last_checked_mail]) 

..

関連する問題