を保存するとき、私は、アクティブレコードクラスを持っているActiveRecordの主キーがvarchar型で、エラー
class Service_Catalogue < ActiveRecord::Base
set_table_name "service_catalogue"
set_primary_key "myKey"
end
MYKEYのデータ型はnvarchar(SQLサーバー)です。
私は試してみて、それを
service_catalogue= Service_Catalogue.new()
service_catalogue.myKey = "somevalue"
service_catalogue.save
を保存すると、私は次のエラーを取得する:
IDENTITY_INSERT could not be turned OFF for table [service_catalogue] (ActiveRecord::ActiveRecordError)
ActiveRecordのは、主キーがID列であると考えているように思え(それはそのvarchar型ではありません)そうではありません。
アイデンティティ挿入を無効にしないように指示する方法はありますか?
UPDATE
これは、アダプタが非難したアクティブレコードSQL Serverのバージョンが判明。 以前は1.0.0.9250を使っていましたが、なんとか2.2.19がインストールされていました(私は宝石の更新を行う時に推測します)。古いバージョンに戻った後、正常に動作します。
このレガシースキーマはありますか? –
ええ、そのゴミのデザインが、それはそれがする必要がある方法です:) –