如何在控制台中为特定用户获取所有路由(如命令rake路由)?我只想要这个用户可以访问的路由吗?
有没有人知道gem或者是编写我自己的控制台命令处理程序的最佳方法?
答案 0 :(得分:1)
你肯定需要自己编写(我不知道是否有cancan插件)。
首先,cancan不会存储您在连接到路径的特定位置可以访问和无法访问的内容,cancan只允许您选择可以为给定类或实例访问的方法,例如can :read, User
,它是不以任何方式绑定到路线,同时路线不直接与模型绑定(它们与控制器相连)。
基于此,编写这样的东西也不是那么容易(不是不可能,但不容易,我认为不够简短)。
您最好的选择是尝试模拟测试,您可以尝试访问每个路由(您可以解析rake路由的输出或读取代码的生成方式)以及用户是否无法访问路径,您标记为不可访问。您还需要提供一种在控制台命令中选择用户的方法。