2014年7月20日日曜日

Railsにて複合主キーのテーブルをupdateしたい場合

Railsはデフォルトでは複合主キーに対応しておらず、検索は問題なくできるが、更新系(update,delete)はエラーが発生してしまう。
『rails update Mysql2::Error: Unknown column where clause』的なエラーに遭遇してしまうはず。

そういう場合は、composite_primary_keysというモジュールを組み込むと解決できるので試してみるとよい。

Gemfileに下記を記述
gem 'composite_primary_keys'

その後、bundle install
bundle install

それから、modelを修正する
class UserClassRelation < ActiveRecord::Base
  self.primary_keys = :user_id, :class_id
end

上記を書いたら、アプリケーションサーバを再起動してupdateなどを試してみてください。

0 件のコメント:

コメントを投稿