2009-04-06 10 views
8

私はAASM by Rubyistを使用してARオブジェクトの4ステップウィザードを構築しています。オブジェクトの状態に応じて、実行する必要のあるさまざまなバリデーションがあります。特定のトランジションで状態に応じてオブジェクトを検証する最もスマートな方法は何ですか?Railsで有限状態マシン(AASMを使用)を検証する

答えて

8

:ifオプションを使用し、with_optionsを使用して一緒に束ねます。

class Post < ActiveRecord::Base 
    with_options :if => proc {|r| r.signup_step > 2 } do |o| 
    o.validates_presence_of :title 
    o.validates_presence_of :yeah 
    end 
end 

if-procで書いておかなければならないのは、明らかにあなたの実装に依存します。

関連する問題