RubyでSinatraを使用してWebアプリケーションを開発しています。開発中に、私は実際にセッションで多くの問題を抱えていませんでした。しかし、今私は実際にアプリケーションを展開するために旅客を利用しています。私は、セッションデータがかなり「リセット」されていることに関して多くの問題を抱えています。Sinatraアプリケーションのセッションで問題が発生しました
この問題に関する他のスタックオーバーフローの問題を見てきましたが、答えがまだ私のために修正されていません。 nilのためのRackアプリケーションオブジェクト内の例外NoMethodError(未定義のメソッド `FOREIGN_KEY」:NilClass
- Putting 'use Rack::Session::Pool' inside config.ru as suggested here
- Used Rack::Session::Pool like explained here
- Tried Memcache as explained here
- Tried Redis-Rack(私にエラーを与える:私は物事のカップルが試しました))
何も私はどちらかのエラーを持ってしまう...本当に役立っているように思われなかったり、私のセッションでは、各要求をリセット取得します。私は乗客がおそらく複数のスレッドを使用していることを知っています。それがセッションの原因ではありませんが、問題の解決策を見つけることはできません。
私はここで何かが分かりませんか?助言がありますか?
Gemfile
source "https://rubygems.org"
gem 'mongo', '1.8.6'
gem 'sinatra', '1.4.8'
gem 'mongo_mapper'
gem 'bson_ext'
gem 'active_model_serializers'
gem 'activemodel-serializers-xml'
gem 'sinatra-flash'
gem 'sinatra-param', require: 'sinatra/param'
gem 'rack-recaptcha2', git: 'https://github.com/nicolas-simplex/rack- recaptcha'
gem 'mail'
gem 'slugify'
gem 'biz'
gem 'bcrypt'
gem 'redis-rack'
group :development do
gem 'mailcatcher', '~> 0.6.4'
end
config.ru
それは私がちょうどラック::セッション::プール、MemcacheのかのRedisを使用した場合に応じて、異なる形式を持っていました。この1は私がRedisのために使用したものだった。
require 'rubygems'
require 'sinatra'
require File.expand_path '../app.rb', __FILE__
require 'rack'
require 'rack/session/redis'
require_relative './app'
app = App.new
sessioned = use Rack::Session::Redis.new(app)
run sessioned
App.rb
require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'slugify'
class App < Sinatra::Base
use Rack::Protection
set :bind, '0.0.0.0'
end
require_relative './config/init' # Initialize configuration files
require_relative './helpers/init' # Initialize helpers
require_relative './routes/init' # Initialize routes
require_relative './models/init' # Initialize models
require_relative './util/tokens' # Token utility
... # Some database seeding, basic setup for some data I use
TLが、これはそうではないDR
シナトラと乗客は一緒に、生産中のセッションをリセット開発中に起こる