Ruby on rails RoR:使用application.rb从访问模型
我正在开发一个简单的web应用程序,它有一个用户模型和角色模型(以及其他),还有一个包含许多控制器的管理部分。我想使用before_过滤器检查会话中用户的用户是否具有“can_access_admin”标志 我在application.rb中有以下代码: def check_角色 @用户=会话[:用户] 如果@user.role.can_access_admin.nil?| |@user.role.can\访问\管理 render:text=>“您当前的角色不允许访问管理区域。” 回来 终止 结束 然后我在其中一个管理控制器中有以下代码: 类Admin::BlogsControllerRuby on rails RoR:使用application.rb从访问模型,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在开发一个简单的web应用程序,它有一个用户模型和角色模型(以及其他),还有一个包含许多控制器的管理部分。我想使用before_过滤器检查会话中用户的用户是否具有“can_access_admin”标志 我在application.rb中有以下代码: def check_角色 @用户=会话[:用户] 如果@user.role.can_access_admin.nil?| |@user.role.can\访问\管理 render:text=>“您当前的角色不允许访问管理区域。” 回来 终止 结
有人知道我必须做什么才能在application.rb中识别角色关联吗?(请注意,关联配置正确,@user.role在我尝试使用它的任何地方都可以正常工作)只是猜测,但您的会话[:user]似乎只是在存储id,您需要执行以下操作:
@user = User.find(session[:user])
或者沿着这些路线来从数据库中获取用户(及其关联)
在before筛选器中执行上述操作也很好。只是猜测,但您的会话[:user]似乎只是在存储id,您需要执行以下操作:
@user = User.find(session[:user])
或者沿着这些路线来从数据库中获取用户(及其关联)
在before过滤器中执行上述操作也很好。会话[:user]是否持有用户?还是用户id?在调用.role之前,您可能需要进行查找。会话[:user]是否持有该用户?还是用户id?您可能需要在调用.role之前进行查找。此外,如果您使用的是ActsAsAuthenticated或RestfulAuthentication或其同类产品,您还可以使用他们提供的当前用户方法。,如果您正在使用actsaauthenticated或RestfulAuthentication或它们的同类产品,您还可以使用它们提供的
current\u user
方法