Sto utilizzando AASM by Rubyist per creare una procedura guidata in 4 fasi per un oggetto AR. Secondo lo stato dell'oggetto, ci sono diverse convalide che devono essere fatte. Qual è il modo più intelligente per convalidare un oggetto in base al suo stato in una determinata transizione?Convalida una macchina a stati finiti (utilizzando AASM) su Rails
8
A
risposta
8
Utilizzare l'opzione :if
e with_options
per raggrupparli insieme.
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
Che cosa si dovrebbe scrivere nel se-proc dipende dal vostro implementazione, ovviamente.