Используйте ApplicationHelper в lib / file.rb - PullRequest
1 голос
/ 26 мая 2019

У меня есть файл в lib/thing.rb, и там мне нужно вызвать метод, определенный в ApplicationHelper, внутри метода класса в thing.rb

Другими словами в Thing.some_method() он вызывает format_me() в ApplicationHelper

Я попробовал все возможные способы, которыми я могу придумать, extend ApplicationHelper или extend ActionView::Helpers::ApplicationHelper, и он просто продолжает говорить неинициализированную константу.Я также пытался Rails.application.helpers, но я не знаю, как получить доступ к методу там ...

1 Ответ

0 голосов
/ 26 мая 2019

Если вы получаете ошибки, связанные с неинициализированными константами, вы, вероятно, сможете решить эту проблему путем перемещения lib/ в app/. Использование Ruby 2.6.3 и Rails 5.2.3, с учетом следующих файлов и макета:

# app/helpers/application_helper.rb
module ApplicationHelper
  def baz
    SecureRandom.uuid
  end
end

и

# app/lib/foo.rb
class Foo
  extend ApplicationHelper

  def self.bar
    baz
  end
end

Вызов Foo.bar возвращает:

=> "b6322675-47b2-4ae8-a19a-ffd4af8d6f84"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...