私の Rails 3.2 アプリには、「利用規約」チェックボックスを含むサインアップ フォームがあります。フォームは次のようになります。
<%= form_for @user do |f| %>
<!-- Error message stuff -->
<%= f.text_field :email %>
<!-- More fields... -->
<%= text_field_tag :terms_and_conditions, false, "true" %>
<% end %>
ユーザーがそのチェックボックスをオンにしていることを確認するために、コントローラーに次のコードがあります。
unless params[:terms_and_conditions] == "true"
@user.errors[:base] << "You must check the 'Terms and Conditions' checkbox"
end
しかし、@user.save
(または@user.valid?
) を呼び出すと、このエラー メッセージが消去されるようです。を使用できることはわかっていますが、追加したばかりのエラー メッセージをメソッドが気にしない@user.errors.empty? && @user.save
のは奇妙です。save
これを行うためのより良い、よりエレガントな方法はありますか?