如何使用"运行"启动Sinatra应用程序

Sim*_*mon 11 ruby sinatra

我尝试在我的Sinatra应用程序中使用Gemfile,但是当我启动我的应用程序时出现此错误:

$ ruby config.ru  
config.ru:7:in `<main>': undefined method `run' for main:Object (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

这是我的三个文件:

hi.rb:

get "/" do
  "Hello world"
end
Run Code Online (Sandbox Code Playgroud)

的Gemfile:

gem "sinatra"
Run Code Online (Sandbox Code Playgroud)

config.ru:

require 'rubygems'
require 'bundler'

Bundler.require

require File.join(File.dirname(__FILE__), 'hi.rb')
run Sinatra::Application
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我怎样才能解决这个问题?

Ric*_*tti 32

您应该启动应用程序:

rackup config.ru
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`rackup`. (6认同)
  • 你能解释一下为什么需要机架或需要霰弹枪吗? (2认同)
  • @gustavoanalyticsrackup 是一个脚本,它使用 ruby​​ 在名为rack的gem中运行第一个也是唯一一个可执行文件。该可执行文件也称为rackup。它在内部为机架应用程序设置环境并启动默认服务器。 (2认同)