标签: sinatra

我在哪里将代码放在我想要执行一次的Sinatra(ruby web框架)中?

我不知道这是一个红宝石问题还是一个Sinatra问题,因为我对两者都不熟悉.以下代码不起作用,我理解为什么,因为第一个my_variable是其块的本地.我只是不知道正确的语法.

require 'rubygems'
require 'sinatra'

configure do
    my_variable = "world"
end

get '/' do
    "Hello " + my_variable
end
Run Code Online (Sandbox Code Playgroud)

EDIT1 - 以下工作,但我想我对配置块的正确用途感到困惑.

require 'rubygems'
require 'sinatra'

my_variable = "world"

get '/' do
    "Hello " + my_variable
end
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

7
推荐指数
1
解决办法
4077
查看次数

如何在sinatra应用程序中html_escape文本数据?

我有一个小的Sinatra应用程序,它从ERB模板为我生成html片段.

我如何html_escape输出?

Sinatra中不存在<%= h somestring%>帮助器.

ruby xss sinatra

7
推荐指数
1
解决办法
4670
查看次数

在Sinatra - 有没有人使用测试夹具?你的测试套件是如何设置的?

我来自Ruby/Rails世界.我正在Sinatra项目上进行测试(使用Rack :: Test).我通常在测试中使用Fixtures.Sinatra有相同的东西吗?

人们如何设置他们的Sinatra测试套件(在基本的helloworld示例之外,这是我能为Sinatra测试找到的唯一例子).

谢谢!

testing rack sinatra

7
推荐指数
1
解决办法
1372
查看次数

在sinatra + heroku应用程序中存储管理员密码的位置?

我有一个我在Heroku上运行的小型Sinatra应用程序,它使用单个管理员密码,以及一些API身份验证密钥.

哪里是存放这些东西的最佳地点?我是否将它们放在环境变量中,然后使用

heroku config:add ADMIN_PASSWORD=foobar
Run Code Online (Sandbox Code Playgroud)

?或者我使用包含它们的配置文件,我只是不提交配置文件?

security heroku sinatra

7
推荐指数
1
解决办法
1651
查看次数

Ruby:JSON.parse返回未定义的方法`bytesize'

response = Typhoeus::Request.get("http://localhost:3000/api/api_email/#{@api_id}.json")
    JSON.parse(response.body)
Run Code Online (Sandbox Code Playgroud)

响应是一个JSON对象,但在尝试解析它时出错.

undefined method `bytesize' for 
Run Code Online (Sandbox Code Playgroud)

我想访问JSON对象.

错误:

NoMethodError at /api/v1/a71040739d6cc50e89aff56601af67/2011-10-1
undefined method `bytesize' for {"xpto"=>{"email

"=>"test@gmail.com"}}:Hash

file: utils.rb location: bytesize line: 239
Run Code Online (Sandbox Code Playgroud)

回溯:

/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/httpserver.rb in service
      si.service(req, res)
/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/httpserver.rb in run
          server.service(req, res)
/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/server.rb in block in start_thread
          block ? block.call(sock) : run(sock)
Run Code Online (Sandbox Code Playgroud)

这是如何生成的:

 @api_id = params[:api_id]
 @bucket = Bucket.where(:api => @api_id)
 respond_with(@bucket, :only => [:email])
Run Code Online (Sandbox Code Playgroud)

返回的.json文件包含:

[{"xpto":{"email":"test@gmail.com"}}]
Run Code Online (Sandbox Code Playgroud)

ruby json sinatra

7
推荐指数
1
解决办法
5520
查看次数

如何默默地启动Sinatra + Thin?

我有一个Sinatra :: Base webservice,我想从命令行Ruby程序开始,所以我有这个:

# command line program file
require 'mymodule/server'

puts "Running on 0.0.0.0:4567, debugging to STDOUT..."

MyModule::Server.run! bind: '0.0.0.0', port: 4567, environment: :production
Run Code Online (Sandbox Code Playgroud)

这按预期工作但它抛出:

$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...

== Sinatra/1.3.1 has taken the stage on 4567 for production with backup from Thin
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop

127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133 …
Run Code Online (Sandbox Code Playgroud)

ruby thin sinatra

7
推荐指数
1
解决办法
2259
查看次数

unde的方法`run'for main:Object(NoMethodError)Sinatra

require 'sinatra/base'

class Foo < Sinatra::Base
  get('/foo') { 'foo' }
end

class Bar < Sinatra::Base
  get('/bar') { 'bar' }
end

run Rack::Cascade, [Foo, Bar]
Run Code Online (Sandbox Code Playgroud)

我猜不出这段代码有什么问题.当我运行:ruby server.rb时,它会抛出一个错误

modular sinatra

7
推荐指数
1
解决办法
7418
查看次数

ruby中的数据库连接池

我刚开始使用Ruby,我正在玩Sinatra,但找不到在请求之间共享数据库连接的方法.

我来自Java web developpement,你要做的一件事就是集中数据库连接,所以我确信Ruby中存在类似的东西,但我找不到它.

ActiveRecord和DataMapper提供此功能,但我不需要ORM,只想进行常规SQL查询.

Sinatra是否有一些特定的方法,或者所有基于Rack的应用程序都有通用的方法?

ruby sinatra

7
推荐指数
1
解决办法
3955
查看次数

不使用端口时使用的端口

我正在尝试运行以下Sinatra应用程序并收到一条错误消息,告诉我无法启动服务器,因为端口已经在使用或因为我没有root权限.在启动Sinatra应用程序之前,我从未遇到过这个问题.几天前我更新了Mountain Lion以获取我的mac,并想知道这可能是导致问题的原因.我也使用RVM.任何人都可以提出建议......

require "sinatra"

class MyApp < Sinatra::Base
 get '/' do
    "Hello from MyApp"

 end

end 

== Sinatra/1.3.3 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop
/Users/me/.rvm/gems/ruby-1.9.2-p290@global/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)
Run Code Online (Sandbox Code Playgroud)

更新:我仍然可以在我的机器上运行rails服务器,所以我认为问题是针对Sinatra的.此外,几天前,当我开始使用这个指导我明确设置端口的Rack Tutorial时,我能够运行Sinatra应用程序 .我想知道这是否会永久改变.

>> Rack::Handler::WEBrick.run my_rack_proc, :Port => 9876
[2011-10-24 11:32:21] INFO  WEBrick 1.3.1
[2011-10-24 …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

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

NameError:未初始化的常量ActiveRecord :: Migrator :: Zlib

我是Ruby和Active Record的新手.我正在尝试使用以下命令运行我的第一次迁移:

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

NameError:未初始化的常量ActiveRecord :: Migrator :: Zlib.

我尝试过不同的项目,所有迁移都会出现此错误.

ruby activerecord sinatra

7
推荐指数
1
解决办法
1171
查看次数

标签 统计

sinatra ×10

ruby ×7

activerecord ×1

heroku ×1

json ×1

modular ×1

rack ×1

security ×1

testing ×1

thin ×1

xss ×1