小编arr*_*rac的帖子

在Sinatra(Ruby)中,如何在应用程序生命周期中创建仅赋值一次的全局变量?

在Sinatra中,我无法创建在应用程序生命周期中仅赋值一次的全局变量.我错过了什么吗?我的简化代码如下所示:

require 'rubygems' if RUBY_VERSION < "1.9"
require 'sinatra/base'

class WebApp < Sinatra::Base
  @a = 1

  before do
    @b = 2  
  end

  get '/' do
    puts @a, @b
    "#{@a}, #{@b}"
  end

end

WebApp.run!
Run Code Online (Sandbox Code Playgroud)

这导致了

nil
2
Run Code Online (Sandbox Code Playgroud)

在终端和,2浏览器中.

如果我尝试@a = 1输入initialize方法,我会收到错误WebApp.run!.

我觉得我错过了一些东西,因为如果我不能拥有全局变量,那么如何在应用程序实例化期间加载大数据呢?

before do 似乎每次有来自客户端的请求时都会调用它.

ruby web-applications sinatra

28
推荐指数
2
解决办法
2万
查看次数

我如何使用warbler打包的Ruby类作为Java代码中的jar?

我有一个ruby应用程序,我使用warbler编译成一个jar.我可以使用像这样的命令独立运行它java -jar executable.jar.但是我无法弄清楚如何在Java代码中使用这个jar.具体来说,我想在Java代码中创建Ruby类的对象,然后调用方法.

java jar jruby warbler

6
推荐指数
1
解决办法
341
查看次数

Ruby:我们如何识别对象o是否在类层次结构中将C类作为其祖先?

在Ruby中,是否可以使用任何方法识别对象o在类层次结构中是否具有类C作为其祖先?

我在下面给出了一个例子,我用一种假设的方法has_super_class?来完成它.我该怎么做呢?

o = Array.new
o[0] = 0.5
o[1] = 1
o[2] = "This is good"
o[3] = Hash.new

o.each do |value|
  if (value.has_super_class? Numeric)
    puts "Number"
  elsif (value.has_super_class? String)
    puts "String"
  else
    puts "Useless"
  end
end
Run Code Online (Sandbox Code Playgroud)

预期产出:

Number
Number
String
Useless
Run Code Online (Sandbox Code Playgroud)

ruby class-hierarchy

3
推荐指数
1
解决办法
1251
查看次数

标签 统计

ruby ×2

class-hierarchy ×1

jar ×1

java ×1

jruby ×1

sinatra ×1

warbler ×1

web-applications ×1