【发布时间】:2012-04-28 21:48:02
【问题描述】:
我是 Rails 新手,希望建立一个使用亚马逊产品 API 的网站。我习惯于在 PHP 中使用 API,但如果可能的话,我热衷于迁移到 Ruby。
我一直在尝试各种 Amazon 产品 API gem、Ruby/AWS、Amazon-ECS,现在又尝试了 Vacuum。然而,我坚持的一个问题是如何实际使用他们在自述文件中建议的代码。
例如,真空:
https://github.com/hakanensari/vacuum/
它提到了以下代码:
req = Vacuum.new :product_advertising
req.configure do |config|
config.key 'key'
config.secret 'secret'
config.tag 'tag'
end
req.build operation: 'ItemSearch',
search_index: 'Books',
keywords: 'Deleuze'
res = req.get
res.valid? or raise res.code
p res.body
不确定将这段代码放在哪里,我为测试应用设置了一个控制器并将其放在那里。但是它在第一行失败了,说没有定义 Vacuum(它作为 gem 安装在 gemfile 中,并且我已经运行了 bundle install)。
我可能正在做一些愚蠢但易于修复的事情,非常感谢任何建议。
D
编辑:
感谢 x1a4,下面的代码应该替换上面的配置块:
req.configure do |config|
config.key = 'key'
config.secret = 'secret'
config.tag = 'tag'
end
【问题讨论】:
-
您在运行
bundle install后是否重新启动了服务器?新的 gem 不会动态加载到正在运行的应用程序中。 -
谢谢,这肯定有助于改变错误消息:) 我现在得到“错误数量的参数(1 代表 0)”,跟踪指向“req.configure do |配置|"线。你觉得这样好吗?
-
从这里看起来没什么问题。您能否将整个跟踪发布到某个地方,例如gist.github.com ?
-
感谢您的帮助。完整的跟踪在这里:gist.github.com/2522499
-
它看起来示例代码是错误的,您需要使用带有
=的setter。在传递给configure的块中,尝试config.key = 'key'、config.secret = 'secret'和config.tag = 'tag'。我诚然没有真空经验,但从痕迹来看,这似乎是问题所在。
标签: ruby-on-rails ruby gem vacuum