表单验证Ruby on Rails

时间:2010-09-28 05:30:40

标签: ruby-on-rails

我已在表单中进行了验证检查,以检查电子邮件,用户名和名字......这里是代码

class User < ActiveRecord::Base
    validates_presence_of :email, :firstname, :username


    validates_format_of :email,
                    :with => /[-!#$&'*+\/=?`{|}~.\w]+@[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])*(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])*)+$/,
                    :message => ' appears to be invalid'
end

在我看来,部分看起来像这样

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
       <ul>
       <% @user.errors.full_messages.each do |msg| %>
         <li>
          <%= msg %>
   </li>
       <% end %>
      </ul>
    </div>

问题是我们无论何时验证失败,所有错误都列在表单上方....我希望错误显示对应于文本框.....我该怎么做

2 个答案:

答案 0 :(得分:5)

将它放在您的复选框/文本字段或其他表单元素旁边:

<%= @user.errors.on(:attribute_name) %>

答案 1 :(得分:0)

模型验证就是这样的。如果你想要内联表单验证,你可以去结帐javascript表单验证。我最喜欢的是jquery的番茄酱插件:

http://demos.usejquery.com/ketchup-plugin/