我有一个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 %>
答案 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
希望这有帮助!