Добавить понедельники метода модели:
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
не может быть использован с произвольным набором дат, и с использованием данных выбора форматом 3 выбирает на самом деле не работает, если у вас есть только 4 дня в месяц.
Вместо этого вы можете использовать
= f.collection_select : start_date, MyModel.mondays, :iso_8601, :to_s
Вы могли бы возможно в группе месяцев с grouped_collection_select.