我有这个验证
validates :terms_of_service, acceptance: true
我的数据库中没有名为terms_of_service的字段,在我看来我有
<%=f.check_box :terms_of_service %>
如果我选中复选框一切正常,但当我不选中复选框时我试图创建记录我有这个错误
undefined method `counts' for #<ActiveModel::Errors:0x007f83f01b6a18>
错误在此视图中
<% if @model.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@model.errors.counts, "error") %> prohibited this model from being saved:</h2>
<ul>
<% @model.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
任何想法,请
答案 0 :(得分:0)
问题出在这一行:
<h2><%= pluralize(@model.errors.counts, "error") %>
您可能希望#count
不是#counts
即:
<h2><%= pluralize(@model.errors.count, "error") %>
另外,下次请在帖子中添加整个错误跟踪。
提供更多信息答案 1 :(得分:0)
问题是如果未选中terms
框,则验证失败并呈现错误,但错误消息有错误 - counts
应为count
< / p>
尝试向验证程序添加自定义消息:
validates :terms_of_service, acceptance: { true,
message: "You must accept the terms of service to continue"}