我的问题如下:检查一个属性是否有效
我有一个表单视图,它需要在提交后显示成功和失败图标。 在提交之前,只需显示没有成功和失败图标的表单。
我们可以做这几种方式的时候是这样的形式:如果请求是一个POST
<%= form_for @resource do |f| %>
<div class='<%= set_class @resource, :name %>'>
Name: <%= f.text_field :name %>
</div>
<% end %>
检查:
def set_class(record, attribute)
if request.post?
if record.errors[attribute].any?
return "FAILED"
else
return "SUCCESS"
end
end
# If not submitted, we don't want a class
end
设置验证后标志(我们可以替代request.post?
在以上解决方案用record.tried_to_validate
):
class MyModel < ActiveRecord::Base
after_validation :set_tried_to_validate
attr_accessor :validated
def set_validated
@tried_to_validate = true
end
end
但是我真的不喜欢ke这些解决方案..
是否有一个内部的Rails方法来检查验证过程是否完成?
你能详细说明验证和通过的区别吗? – 2012-07-09 14:12:47
已验证的属性已尝试保存..通过和失败的属性在保存后是否有效..未验证的属性尚未尝试保存,它们是第一次被用户查看.. – 2012-07-09 14:27:51