如何与form_tag元素一起验证form_for元素?

时间:2012-10-03 17:50:55

标签: ruby-on-rails forms validation

我有一个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 %>

1 个答案:

答案 0 :(得分:1)

我猜你有一个更新/创建会员实例的动作。在这个动作中你可以这样做:

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

希望这有帮助!