как выбрать в рельсах текущий и прошедший месяц-год? - PullRequest
1 голос
/ 19 июня 2020

Я использую date_select для выбора месяца и года, но по умолчанию можно выбрать будущий месяц и год. я хочу ограничить выбор будущего месяца и года. как это можно сделать в рельсах?

вот мой текущий код -

        <div class="field medium-4 columns">
          <%= form.label :attendance_month %>
          <%= form.date_select :attendance_month, { :discard_day => true, :discard_month => false, :discard_year => false },:class => 'month-and-year' %>
        </div>

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

С: date_select вы не можете указать 'end_month', вместо этого я бы создал вспомогательный метод:

# app/helpers/some_helper.rb
module SomeHelper
  def month_range
    ( Date.today.at_beginning_of_year..Date.today ).each_with_object( [] ) do | date , month_array |
       month_array << date.strftime( "%B %Y" ) 
      end.uniq
  end
end

, а затем я бы использовал month_range как часть select_tag:

<%= form.select :attendance_month, month_range, :class => 'month-and-year' %>
0 голосов
/ 19 июня 2020

Вы можете ограничить выбор дат, указав end_year.

:end_year => Time.now.year

Дополнительная информация:

Помощники по дате просмотра действий: date_select

: end_year - Установите год окончания для выбранного года. По умолчанию Date.today.year + 5, если вы создаете новую запись. При редактировании существующей записи: end_year по умолчанию равен текущему выбранному году плюс 5.

...