从控制器调用render_to_string返回空字符串

时间:2019-01-19 07:28:06

标签: ruby-on-rails ruby-on-rails-5

我正在使用rails 5.1,我有一个控制器,当我尝试渲染为字符串时,我得到一个空字符串

def pdf_string
    path = Rails.root.join("/app/views/menu/recipe_card.pdf.erb").to_s;

   render_to_string(
      :file => path,
      locals: get_pdf_locals
    )
end

但如果我这样做

ActionController::Base.new.render_to_string(
  :file => path,
  locals: get_pdf_locals
)

我正在渲染视图。问题是在控制器中使用ActionController::Base.new似乎有点奇怪,并且视图无法访问辅助方法。知道为什么render_to_string正确呈现时控制器的ActionController::Base.new.render_to_string返回空字符串吗?

1 个答案:

答案 0 :(得分:0)

问题是我的控制器扩展了ActionController::API而不是ActionController::Base,不幸的是render_to_string返回的是空字符串,如果失败很容易进行调试。