在Rails中手动请求分派

时间:2012-09-25 18:00:52

标签: ruby-on-rails ruby ruby-on-rails-3 rack

我需要在应用程序本身的rails应用程序上创建请求。

像这样(伪代码)

def some_method()
    clone_request = request.clone
    request.url = "some/url/"
    result_html = Rails.application.run(request)
    # ...
end

Rails版本3.2.8

这甚至可能吗?谢谢。

1 个答案:

答案 0 :(得分:4)

您可以使用app.get("/some/url/")生成请求。然后,运行app.request获取请求数据,app.response获取响应,app.response.body获取html。

如果您需要进行身份验证,请先运行此命令(无论您登录后是否修改):     app.post("/session", :email => "email@host.com", :password => "******")

如果您需要其他实例:     app2 = ActionDispatch::Integration::Session.new(Rails.application)