0

私は次のものをレーキタスクに保存しています。基本的に、URLからの応答コードが200でない場合は、「published」属性を1から0に更新する必要があります。このテイクを実行すると、次のようになります。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
4

1 に答える 1

0

ある場合はuri = URI('url')、に変更する必要がありますuri = URI(url)。現在のコードは、変数'uri'の内容を使用する代わりに、文字列をURIに変換しようとしています。uri

product.update_attribute(:publsihed, publsihed)また、そこに着くとすぐに問題が発生します。「公開済み」ではなく「公開済み」というタイプミスがあります。

于 2012-06-12T21:26:48.247 に答える