2014-09-25 4 views
0

Я использую драгоценный камень, который добавляет ряд Помощников по следующей иерархии модуля:метод Add помощников драгоценного камня

module Ransack 
    module Helpers 
    module FormHelpers 
     def search_form_for 
     end 
    end 
    end 
end 

ActionController::Base.helper Ransack::Helpers::FormHelper 

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

+0

Восстановите один из этих модулей и добавьте свои методы? –

+0

Где я должен его снова открыть? Я не уверен, где в порядке загрузки Rails это заработает, и мои текущие эксперименты все провалились. – Chowlett

ответ

1

В чем смысл изменения драгоценного камня с помощью дополнительных методов? Если это помощник вида, просто создайте соответствующий файл в каталоге app/helpers вашего приложения и добавьте туда своего специального помощника.

Пользовательский помощник будет доступен для всех видов.

+0

Пока это работает, он чувствует себя немного _wrong_. Метод определенно привязан к камню Ransack, а не к глобальному пространству имен. Фактически, он должен ссылаться на объекты Ransack :: Helpers', то есть им нужен полный путь пространства имен, добавленный к ним. Должно быть возможно добавить метод туда, где он принадлежит. Тем не менее, это не работает, поэтому я буду использовать его в качестве обходного пути на данный момент. – Chowlett

+0

Загрязнение пространства имен, которое не под вашим контролем (например, драгоценный камень), как правило, не очень хорошая идея. –

Смежные вопросы