链接检查器在rails中

时间:2012-06-12 21:21:03

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 net-http

我在rake任务中存储了以下内容。基本上我需要它将“已发布”属性从1更新为0如果来自网址的响应代码不是200.当我执行此操作时,我得到: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

1 个答案:

答案 0 :(得分:0)

uri = URI('url')的位置需要将其更改为uri = URI(url)。您当前的代码正在尝试将字符串'uri'转换为URI,而不是使用uri变量的内容。

一旦你到达那里,你也会在product.update_attribute(:publsihed, publsihed)附近遇到问题。你有一个错字:'publsihed'而不是'发表'。