Итак, что бы я хотел сделать, это переопределить метод date_select по умолчанию (я бы хотел ввести «необязательный/неуказанный» ввод даты). То, что я пытался до сих пор это:Переопределение по умолчанию Rails date_select
Библиотека/overrides.rb
ActionView::Helpers::DateHelper::DateTimeSelector.class_eval do
def build_selects_from_types(order)
select = ''
order.reverse.each do |type|
separator = separator(type) unless type == order.first # don't add on last field
select.insert(0, separator.to_s + send("select_#{type}").to_s)
end
select.insert(0, '<p>HI!!</p>') # or whatever...
select.html_safe
end
end
Я тогда требуется «отменяет» в нижней части environment.rb, но при запуске WEBrick я получаю эту ошибку:
~/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:479:in `load_missing_constant': ActionView::Helpers is not missing constant DateTimeSelector! (ArgumentError)
Таким образом, я, очевидно, не знаю, что я делаю, но это кажется разумной попыткой хотя бы по крайней мере.
Ошибка, указанная выше, означает, что она не может найти класс DateTimeSelector, но я просмотрел код в ~/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.0 /lib/action_view/helpers/date_helper.rb, и я думаю, что у меня правильная иерархия модулей. Это потому, что это частный класс Rails?
Любые мысли приветствуется :)
К сожалению, я пропустил конец модуля DateHelper. Я рад, что это не сработало, хотя это означало, что я задал этот вопрос здесь и дал вам возможность рассказать мне, что это глупая идея в первую очередь :) – Jerome
Похоже, это хорошая идея, потому что есть много отличного кода и мне просто нужно было настроить крошечный бит. Я абсолютно понимаю вашу точку зрения, и я думаю, что я могу повторно использовать определенные методы, поэтому мне не нужно полностью изобретать колесо выбора даты. Спасибо Simone. – Jerome
@Jerome Помощник создается как класс. Вы всегда можете создать класс и наследовать от DateTimeSelector, чтобы у вас были все оригинальные методы, и вы можете легко переопределить их, не затрагивая исходный источник. –