覆盖date_select帮助器以添加start_year和end_year

时间:2014-03-28 22:17:29

标签: ruby-on-rails ruby-on-rails-3

我需要添加:start_year和:end_year到我的date_select帮助器。扩展date_select助手以默认添加它的方法是什么,这样我就不必更改数百个视图。

简而言之,我有以下观点:

    <li><%= f.label :hire_date %><%= f.date_select :hire_date %></li>

我希望得到以下内容:

    <li><%= f.label :hire_date %><%= f.date_select :hire_date, :start_year=>1950 , :end_year=>2050%></li>

那么如何扩展date_select以便我不必在所有视图中进行此更改。

1 个答案:

答案 0 :(得分:0)

在config / initializers中的文件名date_select.rb中的代码完成了诀窍:

ActionView::Helpers::DateHelper.class_eval do
      def date_select(object_name, method, options = {}, html_options = {})
        start_year = 1950
        end_year = 2050
        options[:start_year] = start_year
        options[:end_year] = end_year
        ActionView::Helpers::InstanceTag.new(object_name, method, self, options.delete(:object)).to_date_select_tag(options, html_options)
      end
end