我使用Sinatra模块化风格,我不知道会发生什么变质。我搜索谷歌但没有找到任何东西
require 'sinatra/base'
class App < Sinatra::Base
get '/' do
haml '%h1 Test'
end
end
run App
请参阅test.rb:12:在<main>': undefined method
run'中对于main:Object(NoMethodError)
出了什么问题?
答案 0 :(得分:10)
你是通过ruby -rubygems hi.rb运行它(假设这段代码在hi.rb中)。如果是这样,您不需要运行App。除非你通过在Sinatra上构建的另一个框架运行它。
也可能想要包含haml ...
你有一个config.ru:
# config.ru
require 'my_app'
run MyApp
和my_app.rb:
# my_app.rb
require 'sinatra/base'
require 'haml'
class MyApp < Sinatra::Base
get('/') { haml '%h1 Test' }
# start the server if ruby file executed directly
run! if app_file == $0
end
然后在运行my_app.rb的文件夹中,在localhost上启动应用程序:4657:
rackup -p 4567
答案 1 :(得分:2)
关于上面显示以下错误的评论:
`start_tcp_server': no acceptor (RuntimeError)
当您尝试绑定到已绑定的端口时,会出现此信息。尝试使用其他端口号应该可以解决。