ruby-on-rails - 如何检查日期是否有效?

标签 ruby-on-rails ruby

我的代码如下:

if f.thisyear.blank? &&  Date.new(Date.today.year, f.birthday.month, f.birthday.mday ).valid_date?
  f.update_attribute :thisyear, Date.new(Date.today.year, f.birthday.month, f.birthday.mday )
end

在第一行中,我使用以下方法检查有效日期:

Date.new(Date.today.year, f.birthday.month, f.birthday.mday ).valid_date?

这会引发错误:

`new': invalid date (ArgumentError)

我该如何编写代码才能避免这个问题?

最佳答案

Date::valid_date?是一个方法,所以不是

<del>Date.new(Date.today.year, f.birthday.month, f.birthday.mday).valid_date?</del>

使用

Date.valid_date?(Date.today.year, f.birthday.month, f.birthday.mday)

关于ruby-on-rails - 如何检查日期是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904202/

相关文章:

mysql - 在 rails 中为 MySQL 定义 varchar 的长度

ruby-on-rails - 使用 simple_form 和 rails 4 创建多个嵌套表单

ruby-on-rails - 指定 anchor 时,路径助手将 "/search?option=..."更改为 "/search.option=..."

ruby - 返回子数组而不检查 nil

ruby-on-rails - allow_nil : false does not work from rails console

sql - 使用 Rails 'contains operator'(或替代方案)搜索多个值

ruby-on-rails - 为什么需要显式加载可安装引擎的迁移和种子?

ruby-on-rails - 在 rails 上使用选择和数字 ruby 形成

Ruby 计数数组对象,如果对象包含值

ruby-on-rails - 将业务规则移动到模型中