Ruby on rails 轨道中的链接检查器

Ruby on rails 轨道中的链接检查器,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,net-http,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Net Http,我将以下内容存储在rake任务中。基本上,如果url的响应代码不是200,我需要它将“published”属性从1更新为0。当我运行这个take时,我得到:未定义的方法'request#uri' 如果您有uri=uri('url')则需要将其更改为uri=uri(url)。当前代码正在尝试将字符串'uri'转换为uri,而不是使用uri变量的内容 在product.update_属性(:publShied,publShied)的末尾,您也会遇到问题。你的拼写错误是:“Publsized”而不是“

我将以下内容存储在rake任务中。基本上,如果url的响应代码不是200,我需要它将“published”属性从1更新为0。当我运行这个take时,我得到:
未定义的方法'request#uri'


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

product.update_属性(:publShied,publShied)
的末尾,您也会遇到问题。你的拼写错误是:“Publsized”而不是“published”

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