###前提・実現したいこと
セッション中の状態を維持するためにフラグを立てたり降ろしたりしたいのです。そのためsessionインスタンスを利用したのですが、うまく機能しません。
ただし、セッションといっても、sqliteをデータベースとしていて、ログイン、ログアウトしているわけではありません。
(railsアプリを利用中ぐらいのゆるい感じでセッションです)
(いわゆるshow、index、edit、updateの)アクションを繰り返しリクエストするのですが、その間一定の状態を維持したり、破棄したりしたいと考えてます。かといって、データベースに記録するほどの内容ではありません。メモリ上で十分だし、ブラウザを閉じてしまったら、初期化されてしまっても良い程度のものです。セキュリティの考慮もほぼ必要ありません。
###発生している問題・エラーメッセージ
下記のソースにて、flagon、flagoffのアクションを実行するとsession[:flag]の内容が意図どおりに変更されます。
が、flagonアクション後にindexアクション(他のアクションも)を実行しても、session[:flag]はfalseとしか出力されません。
###該当のソースコード
ruby
1 def index 2 p [__LINE__, session[:flag]] # -> 常に[16, false] 3 @faxes = Model.all 4 # 例えば、Model.whereのクエリでsession[:flag]を利用するなど 5 end 6 7 # GET /models/flagon 8 def flagon 9 session[:flag] = true 10 p [__LINE__, session[:flag]] # -> [30, true] 11 end 12 13 # GET /models/flagoff 14 def flagoff 15 session[:flag] = false 16 p [__LINE__, session[:flag]] # -> [36, false] 17 end
###試したこと
参考にしたサイト
$ rails dev:cache Development mode is now being cached.
でキャッシュを使えるようにしてます。
(cookie[:flag]で代用はできていますがセンスがない気がしてます)
###補足情報(言語/FW/ツール等のバージョンなど)
rails 5
現状はdevelopmentです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。