gpt4 book ai didi

ruby-on-rails - Rails View 助手似乎不适用于 render_to_string

转载 作者:行者123 更新时间:2023-12-05 01:14:23 27 4
gpt4 key购买 nike

我尝试使用 gem wicked_pdf 将 Rails View 转换为 pdf。但是当我像这样做一个 render_to_string 时

ActionController::Base.new.render_to_string(template: "templates/pdf_meteo.html.erb", locals: {communaute_meteo_id: id}, layout: 'pdf')

user_path 之类的方法不起作用并返回未定义的方法错误...(请注意,如果我在 html 中呈现页面,则该页面可以正常工作)如果有人可以帮助我!

最佳答案

不幸的是,使用 render_to_string 不会让您访问 Rails URL 助手。一种解决方法是将它们直接包含在您使用 url: Rails.application.routes.url_helpers 之类的内容传递到 PDF 模板的 locals 中:

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

请记住,默认情况下 _path URL 帮助程序将是相对,而不是绝对路径。您可以改用助手的 _url 版本,并以几种不同的方式为他们设置 host。您可以为整个应用程序全局配置它们:

# config/environments/development.rb
Rails.application.routes.default_url_options[:host] = 'www.mysite.com'

或在您的 PDF 模板内的每个助手上单独设置它们:

url.user_url(host: 'www.mysite.com')

希望这能满足您的需求!

关于ruby-on-rails - Rails View 助手似乎不适用于 render_to_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58646135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com