Dynami c URL в жидком шаблоне - Ruby On Rails - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь добавить динамическую c ссылку на электронную почту. Тело электронных писем извлекается и обрабатывается с использованием жидкого шаблона.

Я добавил ссылку Dynami c, как показано ниже, но не уверен, что это самый элегантный способ. Любая помощь в этом будет отличной. Ниже приведена соответствующая часть кода.

class UserDrop < Liquid::Drop
  def search_path
    ActionController::Base.helpers.content_tag(
      :a,
      @user.email,
      :href => Rails.application.routes.url_helpers.admin_users_url(
        search: @user.email,
        host: Rails.application.config.action_mailer.default_url_options[:host])
    )
  end
end

Жидкий код шаблона

Email: {{user.search_path}}

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете действительно убрать это с каплей наследования:

class BaseDrop < Liquid::Drop
  # shamelessly stolen from
  # http://hawkins.io/2012/03/generating_urls_whenever_and_wherever_you_want/
  class Router
    include Rails.application.routes.url_helpers

    def self.default_url_options
      ActionMailer::Base.default_url_options
    end
  end

  private
  def router
    @router ||= Router.new
  end

  def helpers
    @helpers ||= ActionController::Base.helpers
  end
end
class UserDrop < BaseDrop
  def search_path
    helpers.link_to(@user.email, router.admin_users_url(search: @user.email))
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...