Ruby on rails 4 链接到url帮助程序在Rails 4的呈现到字符串中不起作用
在渲染控制器外部的视图时,我试图使link_正常工作。我在网上找到了几种不同的解决方案。您可以看到一次尝试被注释掉 它不断为nil:NilClass生成:未定义的方法“host”Ruby on rails 4 链接到url帮助程序在Rails 4的呈现到字符串中不起作用,ruby-on-rails-4,Ruby On Rails 4,在渲染控制器外部的视图时,我试图使link_正常工作。我在网上找到了几种不同的解决方案。您可以看到一次尝试被注释掉 它不断为nil:NilClass生成:未定义的方法“host” ac = ApplicationController.new ac.class.include Rails.application.routes.url_helpers #context = Rails.configuration.paths['app/views'] #view =
ac = ApplicationController.new
ac.class.include Rails.application.routes.url_helpers
#context = Rails.configuration.paths['app/views']
#view = ActionView::Base.new(context)
#view.class.include Rails.application.routes.url_helpers
#view.render :layout => 'layouts/pdf.html.haml', :template => 'reports/show.pdf.haml', locals: {alerts:@alerts}
ac.render_to_string(:layout => 'layouts/pdf.html.haml', :template => 'reports/show.pdf.haml', locals: {alerts:@alerts})
我还试着在班上骑马。ActionView::Base的东西似乎都不起作用
class ViewRenderer < ActionView::Base
include Rails.application.routes.url_helpers
include ApplicationHelper
def default_url_options
{host: Rails.application.routes.default_url_options[:host]}
end
end
class ViewRenderer
虽然这个问题已经问了4年了,但我的回答是我认为在这里可以有所帮助
一个选项是直接在传递给模板的locals
中包含URL帮助程序:
ac.render\u到\u字符串(
布局:“layouts/pdf.html.haml”,
模板:“reports/show.pdf.haml”,
本地人:{url:Rails.application.routes.url_helpers,警报:@alerts}
)
然后在模板内部,您可以使用显式设置的主机调用它们:
url.user\uURL(主机:“www.mysite.com”)
或者,您可以为整个应用程序全局配置主机:
#config/environments/development.rb
Rails.application.routes.default\u url\u options[:host]=“www.mysite.com”
我最后不得不将助手扩展到ActionView::Base的一个实例中。您能详细说明一下吗?我试图将一个部分(包含链接到)呈现为字符串,并得到错误:ActionView::Template::error:无法处理传递到url的参数。请要求路由或提供您自己的实现
请用实现此功能的代码写出您的答案:我现在面临着同样的问题:)