Определить модули в файле инициализатора Rails, не делая их доступными для всего приложения? - PullRequest
0 голосов
/ 07 мая 2019

Я создал несколько пользовательских Liquid фильтров и зарегистрировал их, как показано в Liquid docs .

Я поместил фильтры в файл инициализатора:

# config/initializers/liquid_filters.rb
module MyFilters
  def foo(arg)
    # Do stuff
  end
end
Liquid::Template.register_filter(MyFilters)

Это хорошо работает, так что теперь метод foo можно визуализировать с помощью шаблона Liquid следующим образом:

{{ "bar" | foo }}

Но, похоже, к методу foo можно также получить доступ из остальной части моего приложения Rails. Это может быть связано с тем, что я определяю модуль MyFilters в своем файле инициализатора без каких-либо ограничений.

Как не сделать модуль MyFilters и его методы доступными вне Liquid?

...