在Rails 5模型中验证毕业日期

时间:2017-08-26 14:39:50

标签: ruby-on-rails datetime model-view-controller

我正在努力确保用户在我的申请中拥有有效的毕业日期。不确定每次我想验证用户的毕业日期时,我的current_year变量是否会更新。这就是我所拥有的(我正在为用户提供此字段):​​

close()

2 个答案:

答案 0 :(得分:1)

 validates :grad_year, numericality: { greater_than_or_equal_to: Date.today.year, less_than_or_equal_to: Date.today.year + 5 }, allow_nil: true

答案 1 :(得分:0)

实际上,使用Date.today.year进行验证是不正确的,因为当前年份将在Rails启动时进行硬编码,并且不会在明年更新(直到重新启动Rails)。

改为使用Lambda:

validates :grad_year, numericality: { greater_than_or_equal_to: -> { Date.today.year }, less_than_or_equal_to: -> { Date.today.year + 5 } }, allow_nil: true