私の問題は次のとおりです。
送信後に成功アイコンと失敗アイコンを表示する必要があるフォーム ビューがあります。送信する前に、成功アイコンと失敗アイコンなしでフォームを表示する必要があります。
これが次の形式の場合、いくつかの方法でこれを行うことができます。
<%= form_for @resource do |f| %>
<div class='<%= set_class @resource, :name %>'>
Name: <%= f.text_field :name %>
</div>
<% end %>
リクエストが POST かどうかを確認します。
def set_class( record, attribute )
if request.post?
if record.errors[attribute].any?
return "FAILED"
else
return "SUCCESS"
end
end
# If not submitted, we don't want a class
end
request.post?
検証後にフラグを設定します (上記のソリューションを に置き換えることができますrecord.tried_to_validate
):
class MyModel < ActiveRecord::Base
after_validation :set_tried_to_validate
attr_accessor :validated
def set_validated
@tried_to_validate = true
end
end
しかし、私はこれらのソリューションがあまり好きではありません..
検証プロセスが完了したかどうかを確認する内部 Rails メソッドはありませんか?