0

私の 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これを行うためのより良い、よりエレガントな方法はありますか?

4

1 に答える 1

2

Rails は受け入れバリデーターを提供します。あなたの状況にぴったりです。詳細については、ドキュメントを参照してください。

于 2012-04-23T18:51:14.423 に答える