首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用namecheap gem?

如何使用namecheap gem?
EN

Stack Overflow用户
提问于 2013-05-07 23:07:21
回答 1查看 528关注 0票数 2

我正在尝试创建一个Ruby控制台脚本来调用namecheap API。我找到了namecheap gem,并使用sudo gem install namecheap安装了它。

我编写了我的测试脚本,隐藏了密钥、用户名和客户端:

代码语言:javascript
复制
#!/usr/bin/env ruby

require 'namecheap'

Namecheap.configure do |config|
  config.key = 'mykey'
  config.username = 'myusername'
  config.client_ip = 'myip'
end
Namecheap.domains.get_list

我的Ruby版本:

代码语言:javascript
复制
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

当我运行这个脚本时,我得到了这个错误:

代码语言:javascript
复制
/var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/monkey_patch.rb:14:in `block in to_param': undefined method `to_query' for "myusername":String (NoMethodError)
    from /var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/monkey_patch.rb:13:in `each'
    from /var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/monkey_patch.rb:13:in `collect'
    from /var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/monkey_patch.rb:13:in `to_param'
    from /var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/namecheap/api.rb:15:in `api_call'
    from /var/lib/gems/1.9.1/gems/namecheap-0.1.2/lib/namecheap/domains.rb:5:in `get_list'
    from ./chkdn.rb:15:in `<main>'

你知道哪里出问题了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-08 03:00:31

剧透:这个gem只有在Rails项目中才能正常工作

据我所知,这是namecheap gem中的一个bug。Gem作者复制了rails activesupport中的core extension部分,以便将散列转换为URL参数。然而,他或她忘记了这个特定的函数依赖于为许多可能的类定义的函数,这些函数可能被用作散列中的值并转换为URL参数(参见all these definitions)。

这就是你得到这个错误的原因:

代码语言:javascript
复制
undefined method `to_query' for "myusername":String

它实际上不是为字符串定义的。但是,如果您使用Rails,它将开箱即用(因为它显然是在那里定义的)。如果您不打算使用Rails,您可以选择:

  • this file的内容复制到项目中的某个位置(您可能希望跳过最后一个类Hash,因为它已经在namecheap gem中打了补丁)
  • 安装activesupport gem并要求'active_support/ core _ext/object/ to _param‘或'active_support/core_ext’(后者将包含所有核心扩展)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16422457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档