Ruby on rails 如何将routes.url\u helpers包含到rails中的视图渲染器中?

Ruby on rails 如何将routes.url\u helpers包含到rails中的视图渲染器中?,ruby-on-rails,urlhelper,Ruby On Rails,Urlhelper,我试图在我的模型中呈现html(用于Mandrill内联代码),但我似乎无法正确呈现url\u帮助程序 哈姆先生 %a{:href => email_question_url(question)} model.rb view = ActionView::Base.new(ActionController::Base.view_paths, @email_vars) view.extend ApplicationHelper questions_html = view.ren

我试图在我的模型中呈现html(用于Mandrill内联代码),但我似乎无法正确呈现url\u帮助程序

哈姆先生

 %a{:href => email_question_url(question)}
model.rb

  view = ActionView::Base.new(ActionController::Base.view_paths, @email_vars)
  view.extend ApplicationHelper
  questions_html = view.render(:partial => 'transactional_mailer/questions_html')
理想情况下,我想跑步:

      view.include Rails.application.routes.url_helpers
但使用未定义的方法进行轰炸的方法包括ActionView::base


有什么建议吗?

我必须打开实例类,并通过以下方式将实例方法包含在其中:

  view = ActionView::Base.new(ActionController::Base.view_paths,{})

  class << view
    include Rails.application.routes.url_helpers
  end

  questions_html = view.render(:partial => 'transactional_mailer/questions_html')
view=ActionView::Base.new(ActionController::Base.view_路径,{})
类“事务性邮件/问题\u html”)

在我的例子中,我需要测试(通过RSpec)一个需要引用其内部视图实例的类,我执行了以下操作:

let(:view) do
  ActionView::Base.new(ActionController::Base.view_paths, {}).tap do |view_instance|
    view_instance.instance_eval { self.class.include Rails.application.routes.url_helpers }
  end
end
这对我有用。它看起来不好看,但很管用