在我的表单中,我希望用户以DD/MM/YYYY格式输入日期。我有验证,检查。Rails 3验证问题
的问题是,在数据库中它被保存在YYYY-MM-DD格式,因此,如果尝试只是为了更新is_money_paid
领域:
job = Job.find(params[:id])
job.update_attributes(:is_money_paid => ...)
验证失败说,工作的日期格式错误(YYYY-MM-DD而不是DD/MM/YYYY)。
什么是解决此问题的适当方法?
下面是相关代码:
class Job < ActiveRecord::Base
validate :job_date_validator
end
DATE_REGEX = /\A\d{2}\/\d{2}\/\d{4}\z/
def job_date_validator
if job_date_before_type_cast.blank?
errors.add(:job_date, "^Date must be selected")
elsif job_date_before_type_cast !~ DATE_REGEX
errors.add(:job_date, "^Date must be in DD/MM/YYYY format")
end
end
is_money_paid
是一个布尔字段。
1.显示您的验证码; 2.什么'is_money_paid'列类型是 – fl00r 2011-03-13 13:32:06
也许你可以在before_validation中打开日期? – 2011-03-13 13:45:44
我用更多的信息更新了这个问题。 – 2011-03-14 03:51:01