に混入モジュールの初期化I持っているこの:モデル
class Bullet < ActiveRecord::Base
include StagedVersionMethods
...
end
そしてこの
module StagedVersionMethods
def initialize
puts self.bullet_id
end
end
私は弾丸のインスタンスを作成すると、モジュールは、メソッドの火災を初期化しますが、私はActiveRecordの取得エラー: ... activerecord-2.2.2/lib/active_record/attribute_methods.rb:268: `read_attribute '
私は、プリマが必要なインスタンス変数を初期化しようとしています私がミキシングしているレコードのキー値。モジュール内の他のメソッドは、このインスタンス変数で動作します。
self(そのコンテキストではARレコードではないため)コールバックは、タスクにも適合しません。
これにどのようにアプローチする必要がありますか?あなたのような初期化を定義する場合
おかげ
おかげShadwell、 インスタンス変数を、この動作を混在させることができます。それは "親"の箇条書きの一時的なコピーを表し、モジュールはメソッド内でhas_temp_version ?, apply_temp_version、discard_temp_versionなどのメソッドをMOdelに組み込みます。 私はあなたが示唆したアプローチを試してみましたが(これは完璧な意味を持っています)、bullet_idを含む自己の属性はすべてゼロです。 私はあなたの2番目の提案を現在使用しています。それはうまくいきます。私が気に入っていたよりも配管が少しだけあります。 乾杯。 – Paul