Tag: 会话

如何从Rails中的Warden / Devise after_authentication回调访问会话

我正在尝试从Rails 3中的Warden的after_authenticate回调(在Devise下运行)访问当前会话。 在我的应用程序控制器的顶部,我想做的事情如下: Warden::Manager.after_authentication do |user,auth,opts| user.associate_with_ids(session[:pending_ids]) end 最终目标是在注册之前获取存储在会话中的记录ID列表,并在登录后将其与用户模型相关联。 任何帮助将非常感激。

Rails 2.3会话

我正在开发rails 2.3.2 app。 我需要为订单记录保留session_id,检索它,最后在订单完成时删除session_id。 它在我使用cookie作为会话存储时起作用,但它不适用于active_record存储。 (我重新启动了浏览器,因此没有缓存问题。) 我知道rails 2.3实现了延迟会话加载。 我读了一些关于它的信息,但我仍然感到困惑。 有人可以澄清我如何在这种情况下使用session_id吗? 我在做什么…… 用户通过多个页面进行订单。 没有注册,也没有登录。 所以我将session_id保留在订单记录中,以便其他用户无法访问订单。 @order = Order.last:conditions => {:id => params [:id],:session_id => session [:session_id]} 订单完成后,我将nil设置为session_id列。 您将如何在惰性会话(和active_record存储)环境中实现这种情况? 谢谢。 山姆

确认Apache Passenger部署:rails访问模型中的会话

我正在使用它来访问Model中的会话。 http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/ 任何人都可以确认它也适用于Apache + Passenger部署吗? 或者,如果有任何其他替代方案可以实现相同的目标? 谢谢, 伊姆兰

我如何清除所有铁路会话?

这是我的代码: if session[:firsttimestart].nil? else @firsttime = false end if @firsttime == true initglobals() end session[:firsttimestart]=false 问题是当我关闭服务器并返回应用程序时,会话[:firsttimestart]仍然是假的。 它以某种方式将此变量存储在我的系统中而没有到期日期,因此不会调用iniglobals()。 我尝试使用rake tmp:clear但它不起作用。 每次重新启动服务器时,如何清除系统中正在使用的所有会话?

RSpec设置会话对象

我正在尝试从我的控制器规范中设置会话对象。 it ‘use invalid coupon’ do session[:coupon] = ‘abcd’ Service.any_instance.stub(:validate_coupon).with(session[:coupon]).and_return(‘abcd’) get :index expect(flash[:coupon__notice]).to be nil end 但是当我检查会话而不是@coupon对象时,我得到一个包含字符串’coupon’的@data,并且测试失败。

Rails,Cucumber,Capybara:会话不会持续存在

我正在尝试为依赖于某些会话存储数据的function编写测试,我的场景如下所示: Scenario: Create offer Given I am on the start offer page When I select “Foo” from “bar” And I press “Go on” Then I should see “You are going to offer foo” 通过使用我发现的调试器,信息正确地存储在会话中,但是在每个新请求中我都会获得一个新的会话。 至少在每个场景中都不应该有工作会话吗? 任何想法为什么不是这样的? 在此先感谢,乔 版本:在轨道上运行2.3.10,黄瓜0.10.0,黄瓜轨道0.3.2,水豚0.4.1.2

Rails 4:如何解密rails 4会话cookie(给定会话密钥和秘密)

在Rails 3中,会话cookie可以使用base64解码轻松解码,但在Rails 4中,cookie被编码和加密。 我想知道如何读取编码和加密的rails 4 cookie(假设我们知道密钥库)。 谢谢,

Rails设计会话控制器

在设计中,许多教授如何完成某些事情的页面需要编辑会话控制器。 我使用这个https://github.com/fortuity/rails3-subdomain-devise/wiki/Tutorial-(Walkthrough)设置了设备。它没有重新制作会话控制器。 我怎么做一个。 (如果真的很容易对不起,请给我几个简单的步骤)

当会话存储在memcached(Rails)中时,用户会占用其他用户的会话

在Memcached中存储会话时,我有一个非常奇怪的问题。 有些用户不时会参加其他人的会话。 例如John,以Maria,Maria和Chris等身份登录。 我使用Rails 2.3.4,但早期版本的Rails也出现了同样的问题。 我只使用一个Memcache服务器,它在同一台机器上运行。 调试这个问题是我无法重现它。 如果有人能指导我如何解决这个问题或调试它,我将非常高兴。 如果您使用Memcached进行会话并且您分享您的示例配置,我也会很高兴。 这些是我的配置: # memcache options memcache_options = { :c_threshold => 10_000, :compression => false, :debug => false, :namespace => ‘app_prod’, :readonly => false, :urlencode => false, } memcache_servers = [‘localhost:11211’] CACHE = MemCache.new(memcache_options) CACHE.servers = memcache_servers config.cache_store = :mem_cache_store, memcache_servers, memcache_options config.action_controller.session_store = :mem_cache_store config.action_controller.session = { […]

如何在rails中保存http referer

我正在尝试保存用户注册时来自的网站。 现在我的ApplicationController中有一个before_filter: before_filter :save_referer def save_referer unless is_logged_in? session[‘referer’] = request.env[“HTTP_REFERER”] unless session[‘referer’] end end 然后,当创建用户时,它会检查此会话变量并将其设置为nil。 有时这不起作用,我担心使用这样的会话可能会发生一些意想不到的事情。 有没有人有更好的方法? 还是一些输入? 编辑:这是我用来保存引用者的逻辑: def create @user = User.new(params[:user]) if @user.save_with(session[:referer]) …. end 用户 def save_with(referer) self.referer = referer unless referer == “null” self.save end 有什么理由不适用吗?