Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails设计问题:我应该如何为多个特权级别构造控制器?_Ruby On Rails_Restful Architecture - Fatal编程技术网

Ruby on rails Rails设计问题:我应该如何为多个特权级别构造控制器?

Ruby on rails Rails设计问题:我应该如何为多个特权级别构造控制器?,ruby-on-rails,restful-architecture,Ruby On Rails,Restful Architecture,我正在写一个具有多级权限的网站。我的系统中基本上有3种用户。他们是管理员、业务和消费者(普通用户)。让我们就说,我正在建立一个广告网站 所以我有一个模型“Campaign”,它有一个rails脚手架附带的RESTful API。企业可以创建活动,用户只能看到他们想要加入的活动,管理员可以做任何事情 现在,我知道如何在过滤之前应用,并严格检查可以访问特定视图的用户类型 但是,每个级别的特权都有自己独特的视图 企业可以看到其活动的洞察力和分析。(我们称之为活动/分析) 消费者可以看到他们参与的所有活

我正在写一个具有多级权限的网站。我的系统中基本上有3种用户。他们是管理员、业务和消费者(普通用户)。让我们就说,我正在建立一个广告网站

所以我有一个模型“Campaign”,它有一个rails脚手架附带的RESTful API。企业可以创建活动,用户只能看到他们想要加入的活动,管理员可以做任何事情

现在,我知道如何在过滤之前应用,并严格检查可以访问特定视图的用户类型

但是,每个级别的特权都有自己独特的视图

企业可以看到其活动的洞察力和分析。(我们称之为活动/分析) 消费者可以看到他们参与的所有活动。(让我们称之为活动/你的) 管理员有特殊的视图,可以监视站点的活动。(我们称之为“活动/监控业务”)

现在,我的活动控制器拥有通常的RESTful视图+分析+您的+监控业务。当然,我有多个数据模型(不仅仅是活动),这使得我的RESTful控制器对于这些数据模型来说非常混乱

我该怎么办?我正在认真考虑启动一个ConsumerController,然后启动一个BusinessController,并将所有相关视图放在这些控制器中。我不知道这是否违反了“RESTful”原则,但我想知道有什么更好的模式可以解决我的问题


我愿意接受各种建议

你不试试cancan gem的角色管理吗

或者是
gem安装cancan
我希望这有帮助。

为什么不试试gem进行角色管理呢? 您可以使用bundler像安装任何gem一样进行安装

它很容易设置,并防止您创建与通常通过创建额外控制器或操作相同的样板代码

为了让您开始,我建议您访问主页上的文档。有更多关于的信息,您可以看到。 您还需要向要强制执行权限的控制器添加一行内容,您可以在其中阅读相关内容


如果标准文档还不足以让你开始,为什么不看一看呢。它向你展示了如何与CanCan合作,这是一个很好的来源,因为Ryan Bates是该剧集的创作者,也是CanCan的创作者。如果视频对您来说移动太快,则会出现文本版本。

我想如果我使用cancan,我可以将控制器留在现在的位置,而不必担心所有问题。您如何处理用户身份验证?