我的問題如下:檢查一個屬性是否有效
我有一個表單視圖,它需要在提交後顯示成功和失敗圖標。 在提交之前,只需顯示沒有成功和失敗圖標的表單。
我們可以做這幾種方式的時候是這樣的形式:如果請求是一個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