セッション ID 情報を使用する必要があるアプリケーションに取り組んでいます。私のセッションは Cookie に保存されます。私が抱えている問題は、ユーザーが初めてサイトにアクセスしたときに、コントローラーがセッションをすぐに利用できないことです。Rails でのセッションの初期化方法について、何かが欠けているのではないかと思います。しかし、これは次の出力であるため、セッションがロードされていないという事実については肯定的ですsession.inspect
。
#<Rack::Session::Abstract::SessionHash:0x15cb970 not yet loaded>
Rails 3.2.11
とで問題を再現する方法は次のruby 1.9.3
とおりです。
test
コントローラーを使用して新しいアプリケーションを作成します。
rails new my_app
cd my_app/
rails g controller test
rm app/assets/javascripts/test.js.coffee
touch app/views/test/index.html.erb
そのコントローラーでセッション ID を取得してみてください。
class TestController < ApplicationController
def index
puts session[:session_id]
puts session.inspect
end
end
必要なルートを追加します。
MyApp::Application.routes.draw do
resources :test
end
次に、アプリケーションにアクセスして、その機能を確認します。
rails server
に行きました:http://localhost:3000/test
それはコンソールの出力です:
#<Rack::Session::Abstract::SessionHash:0x3fd10f50eea0 not yet loaded>
それからまたhttp://localhost:3000/test
、今回はセッションがあります。
400706c0b3d95a5a1e56521e455075ac
{"session_id"=>"400706c0b3d95a5a1e56521e455075ac", "_csrf_token"=>"Euaign8Ptpj/o/8/ucBFMgxGtiH7goKxkxeGctumyGQ="}