簡體   English   中英

在Rails中,如何在不發出HTTP請求的情況下獲取頁面的內容?

[英]In Rails how can I get the contents of a page without making an HTTP request?

這可能確實很明顯,但是在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)來執行此操作

這是在控制台中獲取頁面內容的方式。 它可能對您有用:

require 'action_controller/integration'
app = ActionController::Integration::Session.new;
app.get('/path_to_your_page')
puts app.response.body

在您的控制器中,您可以調用render_to_string而不是render並且返回頁面而不是將頁面發送到瀏覽器。
兩種方法的參數都相同,因此您需要指定需要呈現的控制器和操作。

為什么不直接使用erb? 查看此問題以獲取更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM