http ::请求内部链接返回nil

时间:2014-04-29 08:02:40

标签: ruby-on-rails httprequest

我正在尝试使用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/")

它有效。 你能帮我找到问题吗?

1 个答案:

答案 0 :(得分:1)

您的回复得到nil

@res = http.request(req)此处@res为零,所以当您尝试@res.body时,它会抛出undefined method body for nil:NilClass

你可以

index.html.erb中的

<%= @res.try(:body).try(:html_safe) %>