Rack::Builder 的未定义方法“require”
undefined method `require' for Rack::Builder
当我尝试通过 rackup
命令启动我的 Sinatra 应用程序时,出现此错误:
/home/matteog/Scrivania/ruby_ws/config.ru:1:in `block in <main>': undefined method `require' for #<Rack::Builder:0x000000027d4e50> (NoMethodError)
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
from /home/matteog/Scrivania/ruby_ws/config.ru:in `new'
from /home/matteog/Scrivania/ruby_ws/config.ru:in `<main>'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:272:in `start'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:147:in `start'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/bin/rackup:4:in `<top (required)>'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/rackup:23:in `load'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/rackup:23:in `<main>'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'
但是我使用 ruby helloworld.rb
时没有问题。我的config.ru
很简单:
require 'helloworld'
run Sinatra::Application
此外,我在 rackup
之前使用此 Gemfile(输出省略)成功执行了 bundle install
:
source 'https://rubygems.org'
ruby '2.1.2'
gem 'sinatra', '>= 1.4.5', '~> 1.4'
gem 'sinatra-contrib', '>= 1.4.2', '~> 1.4'
gem 'dm-core', '>= 1.2.0', '~> 1.2'
gem 'dm-sqlite-adapter', '>= 1.2.0', '~> 1.2'
gem 'dm-validations', '>= 1.2.0', '~> 1.2'
gem 'dm-timestamps', '>= 1.2.0', '~> 1.2'
gem 'dm-migrations', '>= 1.2.0', '~> 1.2'
group :development, :test do
gem 'timecop'
gem 'simplecov'
gem 'minitest'
end
已在 chat 中解决 - 任何遇到相同问题的人的摘要:
如果我将它粘贴到 VIM,我得到:
undefined method `<feff>require' for
Unicode 0xFEFF 是 BOM character,可能是编辑器插入的。
当我尝试通过 rackup
命令启动我的 Sinatra 应用程序时,出现此错误:
/home/matteog/Scrivania/ruby_ws/config.ru:1:in `block in <main>': undefined method `require' for #<Rack::Builder:0x000000027d4e50> (NoMethodError)
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
from /home/matteog/Scrivania/ruby_ws/config.ru:in `new'
from /home/matteog/Scrivania/ruby_ws/config.ru:in `<main>'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:272:in `start'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/lib/rack/server.rb:147:in `start'
from /home/matteog/.rvm/gems/ruby-2.1.2/gems/rack-1.6.4/bin/rackup:4:in `<top (required)>'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/rackup:23:in `load'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/rackup:23:in `<main>'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
from /home/matteog/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'
但是我使用 ruby helloworld.rb
时没有问题。我的config.ru
很简单:
require 'helloworld'
run Sinatra::Application
此外,我在 rackup
之前使用此 Gemfile(输出省略)成功执行了 bundle install
:
source 'https://rubygems.org'
ruby '2.1.2'
gem 'sinatra', '>= 1.4.5', '~> 1.4'
gem 'sinatra-contrib', '>= 1.4.2', '~> 1.4'
gem 'dm-core', '>= 1.2.0', '~> 1.2'
gem 'dm-sqlite-adapter', '>= 1.2.0', '~> 1.2'
gem 'dm-validations', '>= 1.2.0', '~> 1.2'
gem 'dm-timestamps', '>= 1.2.0', '~> 1.2'
gem 'dm-migrations', '>= 1.2.0', '~> 1.2'
group :development, :test do
gem 'timecop'
gem 'simplecov'
gem 'minitest'
end
已在 chat 中解决 - 任何遇到相同问题的人的摘要:
如果我将它粘贴到 VIM,我得到:
undefined method `<feff>require' for
Unicode 0xFEFF 是 BOM character,可能是编辑器插入的。