fen*_*nec 29 session ruby-on-rails
这是我的代码:
if session[:firsttimestart].nil?
else
@firsttime = false
end
if @firsttime == true
initglobals()
end
session[:firsttimestart]=false
Run Code Online (Sandbox Code Playgroud)
问题是当我关闭服务器并返回应用程序时,会话[:firsttimestart]仍为false.它以某种方式将此变量存储在我的系统中而没有到期日期,因此不会调用iniglobals().我试图使用rake tmp:clear但它没有用.每次重新启动服务器时,如何清除系统中正在使用的所有会话?
Yev*_*niy 49
无论是DB还是cookie存储,都可以使用 rake tmp:sessions:clear
在Rails 4中,接受的答案(rake db:sessions:clear
)不再有效,因为ActiveRecord :: SessionStore被提取到active_record-session_store
gem中.(详见此处)
您现在可以安装active_record-session_store
gem并rake db:sessions:clear
像在Rails 3中一样使用,或者创建一个如下所示的自定义Rake任务:
namespace :db do
namespace :sessions do
desc "Clear ActiveRecord sessions"
task :clear => :environment do
sql = 'TRUNCATE sessions;'
ActiveRecord::Base.connection.execute(sql)
end
end
end
Run Code Online (Sandbox Code Playgroud)
在 Rails 5 中,如果使用 ActiveRecord:
ActiveRecord::SessionStore::Session.delete_all
或者更细粒度:
# For example schedule this once a day`
ActiveRecord::SessionStore::Session.where(["updated_at < ?", 2.weeks.ago]).delete_all
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26113 次 |
最近记录: |