Comprobador de enlaces en rieles

Tengo lo siguiente almacenado en una tarea de rake. Básicamente, necesito que actualice el atributo "publicado" a 0 desde 1 si el código de respuesta de la URL no es 200. Cuando ejecuto esta toma, obtengo: undefined method 'request_uri' for #<URI::Generic:0x00000102136408 URL:url>

desc "Problem products"
task :update_broken_links => :environment do
  require 'net/http'

  Product.find(:all, :conditions =>["published = ? AND feed_id = ?", '1', 820]).each do |product|
    url = product.url 
    uri = URI('url')
    response = Net::HTTP.get_response(uri)
    x = response.code.to_i    

    if x != 200
      published = '0'
    else
      published = product.published
    end


    product.update_attribute(:publsihed, publsihed) 

  end
end

preguntado el 12 de junio de 12 a las 22:06

1 Respuestas

Donde tienes uri = URI('url') necesitas cambiarlo a uri = URI(url). Su código actual está tratando de convertir la cadena 'uri' en un URI en lugar de utilizar el contenido de la uri variable.

También se encontrará con un problema cerca del final en product.update_attribute(:publsihed, publsihed) una vez que llegues allí. Tienes un error tipográfico: 'publicado' en lugar de 'publicado'.

Respondido el 12 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.