2013-05-07 4 views
2

namecheap API 호출을 만들기 위해 Ruby 콘솔 스크립트를 만들려고합니다. namecheap 보석을 발견하여 sudo gem install namecheap을 사용하여 설치했습니다.namecheap 보석을 어떻게 사용합니까?

/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>' 
: 나는 스크립트를 실행할 때

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] 

내가이 오류 :

#!/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 

내 루비 버전 :

나는 키, 사용자 이름과 clientip을 숨기고, 내 테스트 스크립트를 작성

어떤 아이디어가 잘못 되었나요?

답변

3

스포일러 :이 보석은 레일에서 잘 작동는 namecheap 보석의 버그, 지금까지 내가 보는 바와 같이

프로젝트. 보석 작성자는 해시를 URL 매개 변수로 변환하기 위해 레일즈 활성 지원에서 core extension 부분을 복사했습니다. 그러나이 특정 함수는 가능한 많은 클래스에 정의 된 함수에 의존한다는 것을 잊었습니다.이 함수는 해시의 값으로 사용될 수 있고 URL 매개 변수로 변환 될 수 있습니다 ( all these definitions 참조).

undefined method `to_query' for "myusername":String 

그것은 정말 문자열에 대해 정의되지 않은됩니다 :이 오류가 정확히 왜

. 그러나 Rails를 사용하면 상자에서 작업 할 수 있습니다 (분명히 정의 되었기 때문에). 당신이 레일 사용하지 않을 경우, 옵션은 다음과 같습니다

  • 은 (이미 namecheap 보석에 패치 된대로, 마지막 클래스, 해시를 생략 할 수 있습니다) 어딘가 프로젝트에 this file의 내용을 복사
  • activesupport 보석을 설치하고 'active_support/core_ext/객체/to_param'또는 'active_support/core_ext'중 하나를 필요로 (모든 핵심 확장이 포함됩니다 후자)
관련 문제