Search code examples
ruby-on-railsrubyhttpnet-http

Unable to modify active record inside of net/http callback


I'm unable to set an attribute in the callback of a Net::HTTP GET request.

Why is this happening?

def validate(params)

... net http setup ...
res = Net::HTTP.get_response(URI(path))
        print res.body
        print res.code << prints 200
        if res.code == 404
            puts "404"
        elsif res.code == 200
            user.validated = Time.now
            user.save
            valid = Time.now
            puts "user.validated: #{user.validated}" << this does not 
        end
 puts user.validated # prints nil

Solution

  • Because the result of res.code is a string ("200" or "404"), not a number.

    your code should be:

    ....
    if res.code == "404"
       puts "404"
    elsif res.code == "200"
    ....