我正在使用Windows 7中的Sinatra在Ruby中构建项目。
我的项目结构是:
/project
|_ one.rb
|_ sin.rb
所以,我的代码在one.rb
:
require 'sinatra'
require 'sin'
但是当我运行它时,控制台会输出:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:
36:in `require': cannot load such file -- sin (LoadError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custo
m_require.rb:36:in `require'
from one.rb:1:in `<main>'
我该如何解决?
答案 0 :(得分:4)
答案 1 :(得分:3)
试试require_relative 'sin'
。它会工作。阅读Kernel#require_relative
阅读此帖What is the difference between require_relative and require in Ruby?了解更多信息。
答案 2 :(得分:2)
您也可以将 sin.rb 放入 lib / 文件夹,然后运行:
bundle install
然后:
bundle exec project/one.rb
确保您正确制作了 Gemfile 和 .gemspec 。文件模板可以由 bundler 自动生成,如下所示:
bundle gem your_gem_name
然后你创建文件夹 bin / , lib / ,将 sin.rb 放入 lib / 和 one.rb 进入 bin / 。并使用正确的值填充 .gemspec 中的所有 TODO :
spec.summary = %q{short summary}
spec.description = %q{longer description}
然后运行bundle install和exec,如上所述。如果您要生成gem,然后使用gem install
进行安装,则无需更改任何内容。