我在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
答案 0 :(得分:0)
您uri = URI('url')
的位置需要将其更改为uri = URI(url)
。您当前的代码正在尝试将字符串'uri'
转换为URI,而不是使用uri
变量的内容。
一旦你到达那里,你也会在product.update_attribute(:publsihed, publsihed)
附近遇到问题。你有一个错字:'publsihed'而不是'发表'。