我正在开发一个具有主应用程序和管理应用程序的 Padrino 应用程序。当用户通过会话登录时,我只需运行以下两行即可让他登录。
account = Account.authenticate(params[:email], params[:password])
set_current_account(account)
在 Admin 的任何控制器中使用调试器
current_account
#<Account @id=1 @name="John" @surname="Davies" @email="john.davies@gmail.com" @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 以找出在 Admin 应用程序中登录的用户,但在主应用程序中无法访问此变量。
我要做的是为我的所有模型创建一个 Activity Feed 或 Audit Trail,因此当在任何模型中创建/更新/销毁记录时,会在模型 Activity 中创建一个新记录。话虽如此,我需要访问模型中的 current_account 变量。
我已经搜索了解决方案,并遇到了一个建议:
在 admin/app.rb
enable :sessions
set :session_id, "my-global-session"
在 app/app.rb
register Padrino::Admin::AccessControl
register Padrino::Admin::Helpers
enable :sessions
set :session_id, "my-global-session"
它对我不起作用。有没有办法可以在我的模型中访问 current_account?
感谢您的任何指导或建议。