我正在尝试使用http :: request调用内部操作,但它总是在它的response.body中给出nil。
以下是视图文件中的代码
<%= @res.body.html_safe %>
这是控制器中的代码
def index2
require "net/http"
require "uri"
url = URI.parse("http://localhost:3000/")
req = Net::HTTP::Post.new(url.request_uri)
req.set_form_data({'email'=>'torturer21.21@gmail.com', 'pass'=>'zeas2345'})
http = Net::HTTP.new(url.host, url.port)
@res = http.request(req)
end
,结果是
主#index2 中的NoMethodError
Showing D:/WORK/ERP_BALIYONI/app/views/main/index2.html.erb where line #5 raised:
undefined method `body' for nil:NilClass
2:
3: %>
4:
5: <%= @res.body.html_safe %>
我很困惑,因为当我将网址改为
时url = URI.parse("http://localhost3000.org/")
它有效。 你能帮我找到问题吗?
答案 0 :(得分:1)
您的回复得到nil
@res = http.request(req)
此处@res
为零,所以当您尝试@res.body
时,它会抛出undefined method body for nil:NilClass
:
<%= @res.try(:body).try(:html_safe) %>