我正在尝试根据apartment上的用户登录为per request basis实施自定义电梯。
基本上我想要实现的是:
但是,我的问题是我不知道如何从Generic Elevator提供的请求(Rack::Request)对象中检索当前用户。有关如何操作的任何提示,或者有其他任何方式在没有请求的情况下获取当前用户?
我正在使用devise进行身份验证。
答案 0 :(得分:6)
对于那些与我有同样问题的人,这是我的解决方案。
#My excluded models
config.excluded_models = %w{ User }
Rails.application.config.middleware.use 'Apartment::Elevators::Generic', lambda { |request|
tenant_name = nil
if request.env['rack.session']['warden.user.user.key'] != nil
tenant_name = User.find(request.env['rack.session']['warden.user.user.key'][0][0]).account.name
end
return tenant_name
}
但是,我不确定这是100%防错,所以如果发现错误,我会发布更新。