2013-11-22 7 views
5

मैं एक पैड्रिनो एप्लिकेशन पर काम कर रहा हूं जिसमें मुख्य ऐप और एक एडमिन ऐप है। दो पंक्तियों निम्नलिखित उसे किसी भी नियंत्रकों में व्यवस्थापकPadrino में मॉडलों में current_account तक कैसे पहुंचे?

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

में किसी भी मॉडल में प्रवेश करने के लिए जब सत्र के माध्यम से एक उपयोगकर्ता लॉगिन, मैं सिर्फ चलाते हैं।

account = Account.authenticate(params[:email], params[:password]) 
set_current_account(account) 
डिबगर के साथ

डिबगर के साथ

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"> 

मैं एडमिन ऐप में कौन सा उपयोगकर्ता लॉग इन करता हूं यह जानने के लिए वर्तमान_account तक पहुंचने में सक्षम हूं, लेकिन यह चर मुख्य ऐप में उपलब्ध नहीं है।

मैं जो करने की कोशिश कर रहा हूं वह यह है कि मैं अपने सभी मॉडलों के लिए एक गतिविधि फ़ीड या ऑडिट ट्रेल बना रहा हूं, इसलिए किसी भी मॉडल में जब रिकॉर्ड बनाया/अपडेट/नष्ट हो जाता है, तो मॉडल गतिविधि में एक नया रिकॉर्ड बनाया जाता है । ऐसा कहा जा रहा है, मुझे अपने मॉडलों में current_account चर का उपयोग करने की आवश्यकता है।

मैं समाधान के लिए खोज की है, और एक सुझाव भर में आया था:

व्यवस्थापक/app.rb

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

एप्लिकेशन में/app.rb

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

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

यह काम नहीं किया मेरे लिए। क्या कोई तरीका है कि मैं अपने मॉडलों में current_account तक पहुंच सकता हूं?

किसी भी गाइड या सुझाव के लिए धन्यवाद।

उत्तर

3

मैं बिल्कुल यकीन है कि आप क्या करने की कोशिश कर रहे हैं नहीं कर रहा हूँ, लेकिन मैं इस तरह एक ऐसी ही समस्या हल हो:

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

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

और फिर Account.current का उपयोग इसे उपयोग करने में।

संबंधित मुद्दे