0

我正在尝试使用 mws api 发布带有 ruby​​ on rails 和 spree 的产品。但是,总是会显示此消息:

undefined method `sku' for #<Spree::Admin::MeController:0xce1cec0>

require 'mws-connect'

class Spree::Admin::MeController < Spree::Admin::ResourceController
      def index

        mws = Mws.connect(
            merchant: 'merchant',
            access: 'access',
            secret: 'secret'
        )

        sku = '12345678'
        product = Mws::Product sku {
          upc '123435566654'
          tax_code 'GEN_TAX_CODE'
          name 'Some Product 123'
          brand 'Some Brand'
          msrp 19.99, 'USD'
          manufacturer 'Some Manufacturer'
          category :ce
          details {
            cable_or_adapter {
              cable_length as_distance 5, :feet
            }
          }
        }
        submission_id = mws.feeds.products.add(product)
        result = mws.feeds.get(submission_id)
        puts "Submission: #{result.transaction_id} - #{result.status}"

      end

有人能帮我吗?

4

1 回答 1

0

你的语法没有做你想做的事。在这个部分:

    product = Mws::Product sku {
      upc '123435566654'
      tax_code 'GEN_TAX_CODE'
      name 'Some Product 123'
      brand 'Some Brand'
      msrp 19.99, 'USD'
      manufacturer 'Some Manufacturer'
      category :ce
      details {
        cable_or_adapter {
          cable_length as_distance 5, :feet
        }
      }
    }

由于传递的参数不明确,您遇到错误。Ruby 无法确定调用哪个函数。如果你这样想。

product = Mws::Product(sku(bunch of stuff))

这就是你正在做的事情。它试图调用一个函数 sku 并将结果传递给 Mws::Product。由于功能 sku 不存在,因此它失败了。

您需要熟悉 ruby​​ 的语法,因为这段代码不是有效的 Ruby 语法。您可以在http://www.ruby-doc.org/core-2.0/Hash.html看到一些 Hash 的语法示例

于 2013-07-17T16:02:07.763 回答