标签: sinatra

在一个进程中使用什么ORM多个db连接sinatra应用程序?

检查ActiveRecord,DataMapper,续集:有些使用全局变量(静态变量),有些需要在使用模型加载源文件之前打开数据库连接.什么ORM更适合在使用不同数据库的sinatra应用程序中使用.

ruby database orm sinatra sequel

5
推荐指数
2
解决办法
2169
查看次数

强制浏览器下载文件而不是打开它

我想下载http://foobar.com/song.mp3作为song.mp3,而不必铬在其本地打开它<audio>在浏览器中播放.

我怎么能这样做呢?

ruby sinatra

5
推荐指数
1
解决办法
4032
查看次数

在Sinatra中获取唯一的会话ID

我有一个使用Sinatra构建的简单Web应用程序,并启用了会话。

如果我理解正确,则会话数据存储在编码的cookie中。随着会话数据的更改,cookie的值也将更改。

我需要一个唯一的会话标识符,在整个会话过程中保持不变。是否有这样的标识符。还是我必须创建自己的独特价值并将其自己存储在会话中?

谢谢!

编辑:在下面的评论中,我想到了一个有用的比较。如果我有一个Java servlet,我将使用JSESSIONID作为唯一标识符。我需要一个等效于JSESSIONID的Sinatra。

ruby sinatra

5
推荐指数
1
解决办法
5068
查看次数

Sinatra + Rack :: Test + Rspec2 - 使用会话?

这是我第一次与Sinatra合作,我无法在测试中使用会话.我有enable :sessions我的应用程序.

我试过了:

get "/controller/something", {}, "rack.session" => {:session => "Aa"}
Run Code Online (Sandbox Code Playgroud)

要么

get "/controller/something", {}, "session" => {:session => "Aa"}
Run Code Online (Sandbox Code Playgroud)

但是我的请求中没有设置会话变量.我环顾网络并尝试了几个建议,但似乎没有任何效果.我错过了什么吗?

谢谢!

session rack rspec sinatra rspec2

5
推荐指数
1
解决办法
2363
查看次数

5
推荐指数
0
解决办法
447
查看次数

Rack Sessions在Chrome中迷失了

我有一个非常简单的应用程序托管在EC2上使用Sinatra构建,在nginx背后提供服务.问题是,使用Chrome,会话变量在Sinatra中"丢失".它不会发生在Firefox中.

这是使用Rack :: Session :: Cookie.这与此问题类似:Sinatra不会在Chrome上使用重定向来保持会话

任何有关如何在Chrome中解决此问题的见解将不胜感激.

ruby rack google-chrome thin sinatra

5
推荐指数
1
解决办法
697
查看次数

准备好的声明不存在

目前运行一个简单的sinatra应用程序,使用乘客,并使用pgbouncer连接池到与应用程序在同一服务器上的数据库.目前我间歇性地得到PG错误,准备好的声明"a\d"不存在.

A PG::Error occurred in #: 
ERROR: prepared statement "a2" does not exist 

在错误之前执行的ruby代码

def self.get_ownership_record(id, key)
  self.where("user_id=? AND key=?", id, key ).first 
end

pgbouncer配置

; #########################################################
; ############# SECTION HEADER [DATABASES] ################
; #########################################################

[databases]

fakedatabase=fake

[pgbouncer]

; ----- Generic Settings --------------------------
; -------------------------------------------------
logfile=/opt/local/var/log/pgbouncer/pgbouncer.log
pidfile=/opt/local/var/run/pgbouncer/pgbouncer.pid
listen_addr=*
listen_port=5444

; unix_socket_dir=/tmp
user=_webuser
auth_file=/Users/Shared/data/global/pg_auth
auth_type=trust
pool_mode=transaction
; max_client_conn=100
; default_pool_size=20
; reserve_pool_size=0
; reserve_pool_timeout=5
; server_round_robin=0

; ----- Log Settings ------------------------------
; -------------------------------------------------
; syslog=0
; syslog_ident=pgbouncer
; syslog_facility=daemon
; log_connections=1 …

postgresql sinatra pgbouncer

5
推荐指数
1
解决办法
7091
查看次数

Sinatra:运行rspec测试时记录噪音

Sinatra新手; 我正在运行一些rspec测试,但在日志中收到了一堆不必要的噪音.如何摆脱日志中的过度噪音?我已经仔细检查过环境设置为:test,这意味着记录器级别应该设置为WARN而不是DEBUG.

spec_helper:

require "./app"
require "sinatra"
require "rspec"
require "rack/test"
require "database_cleaner"
require "factory_girl"

set :environment, :test

FactoryGirl.definition_file_paths = %w{./factories ./test/factories ./spec/factories}
FactoryGirl.find_definitions

RSpec.configure do |config|
  config.include Rack::Test::Methods
  config.include FactoryGirl::Syntax::Methods

  # Use color in STDOUT
  config.color_enabled = true

  # Use color not only in STDOUT but also in pagers and files
  config.tty = true

  # Use the specified formatter
  config.formatter = :documentation # :progress, :html, :textmate

  config.order = "random"

  config.before(:suite) do
    DatabaseCleaner.clean_with(:deletion)
  end

  config.before(:each) do
    DatabaseCleaner.strategy = :deletion
  end …
Run Code Online (Sandbox Code Playgroud)

ruby rspec sinatra

5
推荐指数
1
解决办法
1414
查看次数

ActiveRecord:连接断开时如何自动重新连接到PostgreSQL?

我正在将ActiveRecord与Sinatra和PostgreSQL一起使用。当数据库连接断开(由于临时网络故障或postgres服务器重新启动)时,我的应用程序不会自动重新获得连接。我必须重新启动应用程序才能再次连接到postgres。我记得当我在另一个项目中使用Rails时,我没有遇到这个问题。

我需要输入一些配置或代码来告诉ActiveRecord自动重新连接到PostgreSQL吗?

ruby postgresql activerecord sinatra

5
推荐指数
1
解决办法
2344
查看次数

Sinatra Rspec-测试视图是否已呈现

我正在为Sinatra应用编写测试,该应用通过gem从API接收输入。收到API响应后,我需要测试模板是否正确呈现。API的响应将是我正在加载的页面的HTML。

我的第一个直觉是编写一个如下所示的测试:

describe 'the root path'
  it 'should render the index view' do
    get '/'

    expect(last_response).to render_template(:index)
  end 
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试这样做时,出现以下错误: undefined method `render_template'

我想知道是否有人遇到过这个问题-似乎应该很容易解决,但是我似乎找不到任何文档来解决这个问题。

testing rspec sinatra

5
推荐指数
1
解决办法
460
查看次数