非常に長いフォーム(邪悪なウィザードの宝石を使用して分割)で埋められたRailsモデルがあります。
いくつかの検証がありますが、ほとんどのフィールドで空白を許可します。
モデルが保存されている場合は特定のアクションを実行する必要がありますが、一部のフィールドは空白のままです(たとえば、ユーザーがフォームに入力することを忘れないでください)。フォームが100%完了している場合は、他のアクション(たとえば、ユーザーにメールを送信してユーザーに送信する)フォームが完成していることを知っています)。
私の考えは、モデルに空白のフィールドがない場合に:completeなどの仮想属性をトリガーすることですが、それを実行する方法と場所がわかりません。
ヒントはありますか?
=========================編集
@Kzuの提案のおかげで、これはウィザードコントローラーで機能することがわかりました(ただし、オブジェクトコントローラー自体でも機能する可能性があります)
def update
@customer = current_user.customer
params[:customer][:complete] = @customer.attributes.select{|key,value| value.nil? or !value.present? }.any? ? false : true
@customer.attributes = params[:customer]
render_wizard @customer
end