date_select仅显示特定日期

时间:2015-08-06 09:57:20

标签: ruby-on-rails ruby

我怎样才能在天数中显示星期一(例如)?

= f.date_select :start_date, start_year: Date.current.year, end_year: Date.current.year + 1

我知道如何用js做这个,但有没有办法在纯Ruby中做到这一点?

1 个答案:

答案 0 :(得分:1)

为您的模型添加星期一方法:

def self.mondays(starts: nil, ends: nil)
  starts ||= Date.new(Date.current.year) 
  ends ||= Date.new(Date.current.year + 1)
  (starts..ends).select {|d| d.monday? }
end

不幸的是,date_select不能与任意日期集合一起使用,并且当您每月只有4天时,使用具有3个选择的数据选择格式并不真正有效。

相反,您可以使用

= f.collection_select : start_date, MyModel.mondays, :iso_8601, :to_s

您可以使用grouped_collection_select分组到几个月。