0

form_forメソッドを使用してカスタム フィールドを追加したフォームがあり*_tagます。

通常のform_for要素については、モデル内で検証を行っていますが、要素をどうすればよいかわかりませんtext_field_tag

これらのフィールドを検証する最も洗練された方法は何でしょうか?

コードの更新:

<%= form_for(@member, :html => {:class => "generic-form"}) do |f| %>
    <% if @member.errors.any? %>
        <div id="error_explanation">
            <h2><%= pluralize(@member.errors.count, "error") %> prohibited this member from being saved:</h2>
        <ul>
            <% @member.errors.full_messages.each do |msg| %>
            <li><%= msg %></li>
    <% end %>
        </ul>
    </div>
  <% end %>
  <%= f.label :username, "Username:" %>
  <%= f.text_field :username %>
  <%= f.label :password, "Password:" %>
  <%= f.password_field :password %>
  <%= label_tag "repeatPassword", "Repeat password:" %>
  <%= password_field_tag "repeatPassword" %>
  <%= f.label :email, "Email:" %>
  <%= f.text_field :email %>
  <button type="submit" name="commit">Register</button>
<% end %>
4

1 に答える 1

1

Member インスタンスを更新/作成するアクションがあると思います。このアクションでは、次のようなことができます。

def update
  [...]
  if params[:repeatPassword] == params[:member][:password]
    @member.save
  else
    @member.errors.add('password', 'Passwords werent the same')
    redirect_to :action => :update, :id => params[:id]
  end
  [...]
end

お役に立てれば!

于 2012-10-03T18:13:56.970 に答える