我正在开展一个项目,我正在尝试使用点亮https://github.com/prograils/lit来整理我的翻译文件。所以我已经安装了宝石并完成了它的工作。问题是仪表板现在可供任何用户使用。
我们使用devise进行身份验证和pundit进行授权,但是我找不到任何限制访问仪表板的机制,具体取决于用户角色。
非常感谢任何帮助。
答案 0 :(得分:0)
信息中心取决于用户角色。是您需要实现的(在您的情况下)Pundit
。如你所说,你已经在使用它,那么你应该可以做如下的事情:
class DashboardPolicy
:
:
:
def show?
user.admin?
end
end
在user.rb模型中,您将需要一个返回布尔值的方法,如:
def admin?
self.role == "admin"
end
更新(如果无法访问控制器方法)
正如您所提到的,您无法访问控制器方法,那么在这种情况下您可能需要检查路由级别的约束。
我不会在这里添加代码片段,因为它已经在另一个问题上得到了很好的记录,你可以在这里查看答案:https://stackoverflow.com/a/29136866/2545197并在这里阅读更多相同内容:http://guides.rubyonrails.org/routing.html#advanced-constraints