Получить тип модели в Rails Helper - PullRequest
0 голосов
/ 04 февраля 2019

Имеет ли вспомогательный класс в Rails 5 (например, UserHelper) доступ к типу модели, с которым он связан (User)?

У меня есть общая логика AddFilter, для которой требуетсяТип модели для правильной работы.Теперь я применяю метод filter_for, чтобы указать, какая модель используется:

module AddFilter
  def filter_for
    raise "filter_for not implemented"
  end

  #...other code
end

В настоящее время я включаю эту логику во многих моих помощников:

module UserHelper
  include AddFilter

  def filter_for
    User
  end
end

Можно получитьТип модели в AddFilter напрямую?

1 Ответ

0 голосов
/ 04 февраля 2019

Очевидно, поскольку помощники включены в контроллеры, можно использовать функцию из контроллеров:

# add_filter.rb
def filter_for
    controller_path.classify.constantize
end

Этот возвращает путь к контроллеру , классифицирует имя ,затем пытается найти указанную константу .

Все еще чувствует себя довольно взволнованным, лучшие решения приветствуются!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...