单独的模型日期字段和验证轨道

时间:2014-01-15 11:57:33

标签: ruby-on-rails ruby simple-form

我正在将这个宝石用于我的表格:

https://github.com/plataformatec/simple_form

我有3个输入字段,分别用于日,月,年:

= f.input :dob_day, label_html: {style: 'display:none'}, placeholder: 'DD'
= f.input :dob_month, label_html: {style: 'display:none'}, placeholder: 'MM'
= f.input :dob_year, label_html: {style: 'display:none'}, placeholder: 'YYYY'

在我的模型中(重要的一点)我正在尝试为出生日期建立验证:

class User < ActiveRecord::Base

attr_writer :dob_day, :dob_month, :dob_year

  def dob_day
    @dob_day
  end

  def dob_month
    @dob_month
  end

  def dob_year
    @dob_year
  end

user.validates :dob_day, presence: true
user.validates :dob_month, presence: true
user.validates :dob_year, presence: true
user.validates :dob, presence: true,
date: { before: Proc.new { Time.now - 18.years }, message: ": You must be over 18 to join" }

现在我收到错误:

无法批量指定受保护的属性:dob_day,dob_month,dob_year

我想用dob_day,dob_month,dob_year中的值注入dob字段。如果可能的话,我会在模型中进行,而不是在控制器中进行。

我这样做是错误的吗?这应该相当简单,但结果却不是

1 个答案:

答案 0 :(得分:0)

你可以删除

as: :date, start_year: Date.today.year - 90, end_year: Date.today.year - 18, order: [:month, :year, :day]

然后您可以使用jquery date picker来显示日历以选择数据