2012-05-10 14 views
1

私のクラスにstate_machineを含めて、コンソールで操作中に終了しました。しかし、私の興奮は、アプリケーションでそれを使用しようとすると消えました。私はuser.requests.buildを呼び出すときに、私は私のstate_machinedクラスのメソッドを「初期化」「要求」で属しているstate_machinedクラスを初期化できません

wrong number of arguments (2 for 0) 

エラーが発生しました。

は方法を「初期化」宝石の作成者は、https://github.com/pluginaweek/state_machineになるよう私に言ったので

def initialize 
    super() 
end 

のように見えます。クラス定義は

から始まります
class Request < ActiveRecord::Base 
attr_accessible :subject, :details, :assigned_to, :log, :status, :solution 

belongs_to :user 
belongs_to :assignee, class_name: "User", foreign_key: "assigned_to" 

私は、初期化子が認識していない関連付けによって発生したエラーと考えています。私は正しい?私に何ができる?

答えて

1

READMEで与えられている例は、ActiveRecordの統合ではなく、単純なRubyクラスの場合だけです。 ActiveRecordの統合では、state_machineが機能するためには、initializeメソッドで特別な処理を行う必要はありません。 initializeメソッドをオーバーライドすると、ActiveRecordが依存するメソッドのシグネチャが変更されます。そのオーバーライドで何か他のことをやっていないのであれば、それを完全に削除することをお勧めします。

希望すると便利です。

+0

ありがとうございます! –

関連する問題