2013-11-22 12 views
5

Ana Uygulama ve Yönetici uygulamasına sahip bir Padrino uygulamasında çalışıyorum. oturumu aracılığıyla kullanıcı girişlerini, sadece çalıştırdığınızda iki satırı aşağıdaki onu oturum açmak için. ayıklayıcıya ilePadrino'daki modellerde current_account'a nasıl erişilir?

account = Account.authenticate(params[:email], params[:password]) 
set_current_account(account) 

herhangi denetleyicileri Admin içinde

current_account 
#<Account @id=1 @name="John" @surname="Davies" @email="[email protected]" @crypted_password="3456789" @role="admin"> 

yılında ayıklayıcıya ile herhangi bir model

current_account 
*** NameError Exception: undefined local variable or method `current_account' for #<Post @id=1 @question="Why is this not working?" @answer="I have no idea"> 

Admin uygulamasında hangi kullanıcının oturum açtığını öğrenmek için current_account öğesine erişebiliyorum, ancak ana değişkende bu değişkene erişilemiyor.

Yapmaya çalıştığım şey, tüm modellerim için bir Etkinlik Beslemesi veya Denetim İzi oluşturmamadır. Bu nedenle, herhangi bir modelde bir kayıt oluşturulduğunda/güncellendiğinde/yok edildiğinde, model Etkinlik'te yeni bir kayıt oluşturulur . Bu, benim modellerimdeki current_account değişkenine erişmem gerekiyor.

Ben çözümler aradı ve bir öneri geldi adres:

uygulamasında/app.rb

enable :sessions 
set :session_id, "my-global-session" 

yönetici olarak/app.rb

register Padrino::Admin::AccessControl 
register Padrino::Admin::Helpers 

enable :sessions 
set :session_id, "my-global-session" 

Yaramadı benim için. Modellerimde current_account'a erişebilmemin bir yolu var mı?

Herhangi bir rehber veya öneri için teşekkür ederiz.

cevap

3

Ne yapmaya çalışıyorsunuz tam olarak emin değilim, ama böyle benzer bir sorun çözüldü: o zaman

class Account 
    # ... 
    class << self 
    attr_accessor :current 
    end 
    # ... 
end 

class Admin < Padrino::Application 
    #... 
    before do 
    Account.current = current_account 
    end 
    # ... 
end 

Ve erişmek için Account.current kullanın.

İlgili konular