1

我很难弄清楚我在这里做错了什么。结果是空的,我正在寻找它返回(通过帮助程序hello调用该方法 )。testingbefore

require 'rubygems'
require 'sinatra'

get '/' do
end

before do 
  testing
end 

def testing
  return "hello"
end
4

2 回答 2

2

这里有几个问题。一方面,您必须在视图中实际调用所需的输出或变量,最常见的是作为实例变量(否则每个用户都会获得相同的输出。)以下面的修改代码为例:

require 'rubygems'
require 'sinatra'

get '/' do
  @word
end

before do 
  testing
end 

def testing
  @word = "hello"
end

查看Sinatra Book,一个免费的在线资源,了解如何开始使用 Sinatra。

于 2012-07-26T03:34:34.400 回答
2

因为您没有在 Get 请求上调用输出,所以您需要告诉您的 Get 方法返回一个输出。就像thekungfuman建议的那样。或尝试使用 Minimal 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!
于 2012-07-26T07:08:58.757 回答