К сожалению, использование render_to_string
не даст вам доступ к URL-помощникам Rails. Один из обходных путей заключается в том, чтобы включить их непосредственно в locals
, который вы передаете в шаблон PDF, используя что-то вроде url: Rails.application.routes.url_helpers
:
ActionController::Base.new.render_to_string(
template: "templates/pdf_meteo.html.erb",
locals: {url: Rails.application.routes.url_helpers, communaute_meteo_id: id}
layout: 'pdf'
)
И затем внутри вашего шаблона PDF вы бы назвали их с помощью:
url.user_path
Имейте в виду, что по умолчанию помощники URL _path
будут относительно , а не абсолютными путями. Вместо этого вы можете использовать _url
версию помощников и установить для них host
несколькими различными способами. Вы можете настроить их глобально для всего приложения:
# config/environments/development.rb
Rails.application.routes.default_url_options[:host] = 'www.mysite.com'
или настроить их отдельно для каждого помощника внутри вашего шаблона PDF:
url.user_url(host: 'www.mysite.com')
Надеюсь, что вы получите то, что вам нужно!