Rails 3.1.1を使用すると、何らかの理由でmysqlクエリのバインドパラメータが存在しないような場合があります。このエラーは次のようになります。Rails mySQLのバインドパラメータが空です
A ActiveRecord::StatementInvalid occurred in events#show:
Mysql::Error: : SELECT `events`.* FROM `events` WHERE `events`.`id` = ? LIMIT 1
activerecord (3.1.1) lib/active_record/connection_adapters/mysql_adapter.rb:890:in `execute
挿入や選択に一貫性がないため、問題が発生しています。誰か提案はありますか?
編集:より簡単な例で更新。
#events_controller.rb
def show
@event = Event.find(params[:id])
...
end
#called with parameters: {"action"=>"show", "controller"=>"events", "id"=>"26"}
'view_ips'テーブル、' app/models/view_ip.rb'ファイルの内容、 'videos#viewed'アクションの生成に使用したマイグレーションを投稿できますか?それらは私達があなたを助けることを可能にするでしょう。 –
モデルオブジェクトに検証を追加して、データベースに到達する前に問題をトラップすることができます。私の推測は、これは実際にはMySQL関連の問題ではないということでしょう。 – GSnyder
これはいくつの場所で 'ViewIp'を作成するためのコードですか?コードを私たちに教えてください。コードにロギングを追加するので、どの実際のメソッド/エントリがnil値を引き起こすかを知ることができます。次に、それらがどこになくてどのようにゼロになるかを確認します。がんばろう。 – nathanvda