4

如果我渲染 html,我会在浏览器中获得 html,效果很好。但是,当在模块或类中调用时,如何获得路由的响应(html)。

我需要这样做,因为我将文档发送到 DocRaptor,而不是将标记/html 存储在 db 列中,我想存储记录 ID 并在作业执行时创建标记。

一个可能的解决方案是使用 Ruby 的 HTTP 库、Httparty 或 wget 或其他东西并打开路由并使用 response.body。在这样做之前,我想我会四处打听。

谢谢!

- 更新 -

这就像我最终的结果:

快速提示 - 如果有人这样做并且需要他们的辅助方法,您需要使用 ApplicationHelper 扩展 AV:

这是我最终做的事情:

av = ActionView::Base.new()
av.view_paths = ActionController::Base.view_paths
av.extend ApplicationHelper #or any other helpers your template may need
body = av.render(:template => "orders/receipt.html.erb",:locals => {:order => order})

链接: http ://www.rigelgroupllc.com/blog/2011/09/22/render-rails3-views-outside-of-your-controllers/

4

1 回答 1

1

检查这个问题,它包含答案中可能想要的代码:

Rails 3 > 在 rake 任务中渲染视图

于 2013-06-06T21:58:34.927 回答