【问题标题】:Rake task handle 404耙任务句柄 404
【发布时间】:2016-03-29 20:52:54
【问题描述】:

我正在使用 rake 任务从一个 csv 获取数据,使用该数据调用 shopify api,并将响应保存到另一个 CSV。问题是我没有适当的错误处理程序,因此如果 shopify api 找不到我提供的资源,整个任务就会中止。处理错误的最佳方法是什么,以便如果在 Shopify 中找不到资源,只需跳过它并继续下一行?

下面代码中调用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

【问题讨论】:

    标签: ruby-on-rails csv rake shopify


    【解决方案1】:

    这里有一个简单的方法来完成它:

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

    如果引发异常,救援中的事情就会发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多