这可能非常明显,但在rails中如何在不发出HTTP请求的情况下获取页面内容?
即。我想在同一台服务器上的脚本中获取我的rails应用程序生成的任何页面的内容。对于HTTP请求,这当然是微不足道的,但是我怎么能得到页面的内容呢?
这就是我现在正在做的工作正常:
require 'open-uri'
contents = open("http://localhost/path_to_my_page").read # but I really want to get rid of the overhead of the HTTP request
我需要能够从rails应用程序中的脚本执行此操作,而不是控制器(例如使用render_to_string)
答案 0 :(得分:3)
这是您在控制台中获取页面内容的方式。它可能适合你:
require 'action_controller/integration'
app = ActionController::Integration::Session.new;
app.get('/path_to_your_page')
puts app.response.body
答案 1 :(得分:1)
在您的控制器中,您可以拨打render_to_string
而不是render
,然后返回页面而不是发送到浏览器。
两种方法的参数都是相同的,因此您需要指定渲染所需的控制器和操作。
答案 2 :(得分:0)
为什么不直接使用erb?有关详细信息,请参阅this question