请帮我解决问题 我添加了:检查属性到我的Person模型。然后我添加了验证。这是:
validates :check, :absence => true
之后它停止了工作,我得到了这个:
Unknown validator: 'AbsenceValidator' (ArgumentError)
根据这篇文章它应该工作 http://guides.rubyonrails.org/active_record_validations.html#absence
但事实并非如此。
任何想法如何解决?
提前多多感谢!
答案 0 :(得分:1)
在Rails 3中尝试以下代码。
validate :check_is_absent
def check_is_absent
errors.add(:check, "check is present") if check.present?
end
presence
验证器助手使用blank?
确定属性的存在,absence
助手使用present?
来确定属性的缺失。
答案 1 :(得分:1)
validates_absence_of :column_name, absence: true
/ validates_absence_of :column_name
在Rails 3.2上只是......缺席。
相反,您可以使用custom validation block:
validate(:check) { errors.add(:check, :absence) if check.present? }
额外奖励:您可以配置您的语言区域(f.e。config/locales/en.yml
),以便为:absence
错误获取相同的消息:
en:
activerecord:
errors:
messages:
absence: "must be blank"
答案 2 :(得分:0)
如果有人仍在乎。前段时间我为rails 3.2创建了这个:
https://github.com/robotex82/rails_tools-absence_validator
或者将它添加到你的gemfile中:
gem install rails_tools-absence_validator
并在轨道4中使用它。