模型验证在rails 3.2.1中不起作用

时间:2012-02-06 15:22:38

标签: ruby-on-rails ruby regex validation model

为什么这个模型验证器

validates_format_of :weight, :with => /\A\d{1,3}\.\d{0,2}\Z/, :on => :create

匹配

12.4kg

虽然不可能

编辑: 视图表单

<%= form_for :new_client do |f| %>
<% if @new_client.errors.any? %>
    <div class="error_explanation">
        <h2><%= pluralize(@new_client.errors.count, "error") %> prohibited data from being send:</h2>
        <ul>
            <% @new_client.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>
        </ul>
    </div>
<% end %>

<div class="field">
    <%= f.label :weight %>          <%= f.text_field :weight %><br/>
    <%= f.label :height %>          <%= f.text_field :height %><br/>
</div>
<div class="actions">
    <%= f.submit %>
</div>

我认为我检查了所有错误,但关键是,重量不应该有效并且应该产生错误,但事实并非如此。

2 个答案:

答案 0 :(得分:0)

常见错误是忘记显示错误消息,尤其是在保存表单后显示相同的表单时。这个错误已经花了我几个小时的调试。您是否在视图中查看了@model.errors

答案 1 :(得分:0)

我发现了这个问题。 在我的迁移文件中,权重列是浮点数而不是字符串。