2016-03-29 8 views
1

rakeタスクを使用して1つのcsvからデータを取得し、そのデータを使用してshopify APIを呼び出し、別のCSVにレスポンスを保存します。問題は、私が用意したリソースを見つけることができない場合、タスク全体が中止されるように、エラーハンドラが用意されていないということです。 Shopifyでリソースが見つからない場合は、スキップして次の行に進むようにエラーを処理する最良の方法は何ですか?例外がで何かを提起されている場合はレイクタスクハンドル404

begin 
    variant = ShopifyAPI::Variant.find(vid) 
rescue 
    next 
end 

以下のコードでshopify APIを呼び出す行は次のとおりです。
variant = ShopifyAPI::Variant.find(vid)

namespace :replace do 
    desc "replace variant id with variant sku" 

    task :sku => :environment do 
     file="db/master-list-3-28.csv" 
     newFile = Rails.root.join('lib/assets', 'newFile.csv') 
     CSV.open(newFile, "a+") do |csv| 
      CSV.foreach(file) do |row| 

       msku, namespace, key, valueType, value = row 
       valueArray = value.split('|') 
       newValueString = "" 

       valueArray.each_with_index do |v, index| 

        recArray = v.split('*') 
        handle = recArray[0] 
        vid = recArray[1] 
        newValueString << handle 
        newValueString << "*" 
        # use api call to retrieve variant sku using handle and vid 
        #replace vid with sku and save to csv 

        variant = ShopifyAPI::Variant.find(vid) 
        sleep 1 
        # puts variant.sku 
        newValueString << variant.sku 
        if index < 2 
         newValueString << "|" 
        end 
       end 

       #end of value save the newvaluestring to new csv 
       csv << [newValueString] 

      end 
     end 
    end 
end 

答えて

1

ここでそれを成し遂げるための簡単な方法です救助が起こる。