Jas*_*zek 1 ruby ruby-on-rails
我正在开发一个简单的Web应用程序,它具有用户模型和角色模型(以及其他),以及包含许多控制器的管理部分.我想使用before_filter来检查会话中用户的用户是否有'can_access_admin'标志.
我在application.rb中有这个代码:
def check_role @user = session [:user]
if @ user.role.can_access_admin.nil?|| !@user.role.can_access_admin render:text =>"您当前的角色不允许访问管理区域." 返回结束
然后我在其中一个管理控制器中有这个代码:
class Admin :: BlogsController <ApplicationController before_filter:check_role
def list @blogList = Blog.find(:all)end end
当我尝试查看列表操作时,我收到此错误:
未定义的方法'角色'为用户...
任何人都知道我必须做什么才能在application.rb中识别角色关联?(请注意,关联配置正确,@ user.role在我试图使用的其他地方工作正常)
只是一个猜测,但似乎你的会话[:user]只是存储id,你需要这样做:
@user = User.find(session[:user])
Run Code Online (Sandbox Code Playgroud)
或沿着这些行的东西从数据库中获取用户(以及它的关联).
在前一个过滤器中执行上述操作也很好.
归档时间: |
|
查看次数: |
444 次 |
最近记录: |