8

Rubyist の AASMを使用して、AR オブジェクト用の 4 ステップのウィザードを作成しています。オブジェクトの状態に応じて、実行する必要があるさまざまな検証があります。特定の遷移の状態に従ってオブジェクトを検証する最もスマートな方法は何ですか?

4

1 に答える 1

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 に正確に何を書くべきかは、明らかに実装によって異なります。

于 2009-04-06T13:22:02.743 に答える