Я работаю над приложением Padrino, в котором есть основное приложение и приложение администратора. Когда пользователь входит в систему через сеанс, я просто запускаю следующие две строки, чтобы войти в систему.
account = Account.authenticate(params[:email], params[:password])
set_current_account(account)
С отладчиком в любых контроллерах в Admin
current_account
#<Account @id=1 @name="John" @surname="Davies" @email="[email protected]" @crypted_password="3456789" @role="admin">
С отладчиком в любых моделях
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">
Я могу получить доступ к current_account, чтобы узнать, какой пользователь вошел в систему в приложении администратора, но эта переменная недоступна в основном приложении.
Что я пытаюсь сделать, так это то, что я создаю канал активности или контрольный журнал для всех моих моделей, поэтому, когда запись создается/обновляется/уничтожается в любой модели, в модели Activity создается новая запись. При этом мне нужно получить доступ к переменной 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 в моих моделях?
Спасибо за любое руководство или предложение.