2011-10-17 4 views
3

私は、Railsモデルをバックアップするために使用している計算カラムを持つデータベースビューを持っています。 model.createによって生成されたINSERT INTOステートメントは、その列をNULLに設定しようとします。これにより、データベースにエラーが発生し、レコードが作成されません。私は知っている:attr_readonlyは、列をUPDATEで指定しないようにするために使うことができますが、ActiveRecordにINSERTのためにそれを指定してはいけないと伝える手段がありますか?アクティブなレコードのNULLを防止するINSERT?

答えて

2

可能性: 作成する前にオブジェクトから属性を手動で削除します。

before_create(:remove_attribute) 

    private 

    def remove_attribute 
    @attributes.delete('unwanted_attribute') 
    end 

これは現在の 対象から完全に属性を削除することに注意してください。 でレコードを作成した後で、削除された属性にアクセスする必要がある場合は、レコードを再読み込みする必要があります。

関連する問題