新手问题 困扰了好几天了

davidminaki · 2015年05月08日 · 最后由 zlx_star 回复于 2015年05月09日 · 3416 次阅读

test 代码如下

require "lib/TaoBaoApi.rb" 

urls=[
    'http://detail.tmall.com/item.htm?id=41209779482',
    'http://detail.tmall.com/item.htm?spm=a1z0d.6639537.1997196601.23.amSsBp&id=44277933187',
    'http://detail.tmall.com/item.htm?id=5779313009'
]


urls.each {|url|
  good = TaoBaoApi::Good.new url
  info  = good.get_info
  p info
  puts get_url
}

TaoBaoApi 已经安装 但是 每次运行 ruby test.rb 就报这个错误,不知道何故,之前没有报错过,ruby 版本 2.2.2

/Users/david/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- TaoBaoApi/version (LoadError)
    from /Users/david/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/david/work/shanyeshuo/vendor/TaoBaoApi/lib/TaoBaoApi.rb:1:in `<top (required)>'
    from /Users/david/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Users/david/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from test.rb:1:in `<main>'

cannot load such file -- TaoBaoApi/version (LoadError) 駝峯???

vendor/TaoBaoApi

怎么装的?

#3 楼 @rei gem 'TaoBaoApi', :path => 'vendor/TaoBaoApi' #本地文件

我感觉楼主隐藏了细节,按这个代码应该报这个错:cannot load such file -- lib/TaoBaoApi.rb

#6 楼 @rei https://github.com/wikimo/TaoBaoApi 下载这个 gem 一样报错 应该是我环境的 问题 os 10.10.3 之前不报错 很奇怪

test.rb 和 vendor 的位置是怎么样的?

如果是用 bundler 管理 gem,应该这样写:

require 'bundler/setup'

我看了下源码,一共就一个文件,抽出来作为一个 module 直接用吧。 复用再做成 gem

问题很明显出在 TaoBaoApi.rb 这个文件中,在第一句之前打印出当前加载环境看看:p $:

https://github.com/wikimo/TaoBaoApi/blob/master/TaoBaoApi.gemspec#L2-L3 这几句没有执行,所以当前加载环境中找不到 TaoBaoApi/version

直接 require 'TaoBaoApi'

需要 登录 后方可回复, 如果你还没有账号请 注册新账号