我很难弄清楚我在这里做错了什么。结果为空,我希望它返回hello
(通过testing
帮助程序调用方法before
。
require 'rubygems'
require 'sinatra'
get '/' do
end
before do
testing
end
def testing
return "hello"
end
答案 0 :(得分:2)
这里有几个问题。首先,你必须在视图中实际调用所需的输出或变量,最常见的是作为实例变量(否则每个用户都获得相同的输出。)以下修改后的代码为例:
require 'rubygems'
require 'sinatra'
get '/' do
@word
end
before do
testing
end
def testing
@word = "hello"
end
查看Sinatra Book免费在线资源,了解有关Sinatra入门的信息。
答案 1 :(得分:2)
因为您没有在Get请求上调用输出,所以需要告诉Get Method返回输出。像功夫人建议的那样。或者按照以下方式尝试最小的Hello World Sinatra应用程序:
#imports
require 'rubygems'
require 'sinatra'
#Get Request on Root ("/")
get '/' do
"Hello Sinatra World!"
end
将程序放在课程中也很有用,所以你也可以这样做:
#imports
require 'rubygems'
require 'sinatra/base'
#My Application Class
class AppName < Sinatra::base
get '/' do
'Hello Sinatra World!'
end
end
AppName.run!
通过这种方式,您还可以将其用作单独的应用程序文件,并将其导入其他文件,例如。
require 'app_name' #replace this with the name of the physical file
#Run Application "AppName"
AppName.run!