2014-07-20 5 views
2

ActsAsTenant를 사용 중이며 모든 Devise 경로 (즉, 모든 Devise 컨트롤러)에서 아래 오류가 계속 발생합니다. 그것은 Devant가 세입자가 설정되기 전에 사용자를 얻는 것과 관련하여 current_user 또는 무언가를 얻으려는 것으로 보이므로 ActsAsTenant는 오류를 발생시킵니다. prepend_before_action을 사용하여 세입자를 설정하려고 시도했지만 그 작업은하지 않았습니다.Devise와 ActsAsTenant가 함께 놀고 있지 않습니다.

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 

    prepend_before_action :secure_app 
    before_action :authenticate_user! 

    private 

    def secure_app 
     self.class.set_current_tenant_by_subdomain_or_domain 
    end 
end 

Devise가 current_user를 찾기 전에 세입자가 설정되어 있는지 어떻게 확인합니까?

ActsAsTenant :: 오류 ::에서 NoTenantSet/ ActsAsTenant :: 오류 :: NoTenantSet

block in User.acts_as_tenant 
() home/lee/.rvm/gems/ruby-2.1.1/bundler/gems/acts_as_tenant-1b7d146d750b/lib/acts_as_tenant/model_extensions.rb, line 54 
block (3 levels) in User.build_default_scope 
activerecord (4.1.4) lib/active_record/scoping/default.rb, line 103 
User::ActiveRecord_Relation#scoping 
activerecord (4.1.4) lib/active_record/relation.rb, line 285 
block (2 levels) in User.build_default_scope 
activerecord (4.1.4) lib/active_record/scoping/default.rb, line 103 
block in User.build_default_scope 
activerecord (4.1.4) lib/active_record/scoping/default.rb, line 102 
User.evaluate_default_scope 
activerecord (4.1.4) lib/active_record/scoping/default.rb, line 125 
User.build_default_scope 
activerecord (4.1.4) lib/active_record/scoping/default.rb, line 101 
User.default_scoped 
activerecord (4.1.4) lib/active_record/scoping/named.rb, line 33 
User.all 
activerecord (4.1.4) lib/active_record/scoping/named.rb, line 28 
User.where 
activerecord (4.1.4) lib/active_record/querying.rb, line 10 
OrmAdapter::ActiveRecord#get 
orm_adapter (0.5.0) lib/orm_adapter/adapters/active_record.rb, line 17 
User.serialize_from_session 
devise (3.2.4) lib/devise/models/authenticatable.rb, line 208 
block (2 levels) in Warden::SessionSerializer#user_deserialize 
devise (3.2.4) lib/devise.rb, line 462 
Warden::SessionSerializer#fetch 
warden (1.2.3) lib/warden/session_serializer.rb, line 34 
Warden::Proxy#user 
warden (1.2.3) lib/warden/proxy.rb, line 212 
Warden::Proxy#_perform_authentication 
warden (1.2.3) lib/warden/proxy.rb, line 318 
Warden::Proxy#authenticate! 
warden (1.2.3) lib/warden/proxy.rb, line 127 
RegistrationsController#authenticate_user! 
devise (3.2.4) lib/devise/controllers/helpers.rb, line 50 
RegistrationsController#authenticate_scope! 
devise (3.2.4) app/controllers/devise/registrations_controller.rb, line 124 
block in ActiveSupport::Callbacks::Callback#make_lambda 
activesupport (4.1.4) lib/active_support/callbacks.rb, line 424 
block in ActiveSupport::Callbacks::Filters::Before.halting_and_conditional 
activesupport (4.1.4) lib/active_support/callbacks.rb, line 143 
RegistrationsController#run_callbacks 
activesupport (4.1.4) lib/active_support/callbacks.rb, line 86 
RegistrationsController#process_action 
actionpack (4.1.4) lib/abstract_controller/callbacks.rb, line 19 
RegistrationsController#process_action 
actionpack (4.1.4) lib/action_controller/metal/rescue.rb, line 29 
block in RegistrationsController#process_action 
actionpack (4.1.4) lib/action_controller/metal/instrumentation.rb, line 31 

답변

0

OK 불행하게도 나는 것을 고안 제거 및 정리로 교체받을되었다 않는 한 무슨을 편집 문제의 첫 번째 문제를 해결, 다음에 나는 ActsAsTenant를 없애고 include에 기본 범위를 설정하고 임차인이 설정되지 않은 경우 오류를 throw하는 자체 모듈을 작성했습니다. 그것은 잘 가치가있다, 그래서 모든 시간 모든 작업 몇 있지만, 모든 것이

이 문제를 해결 할 수