0

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

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

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

但是,每个特权级别都有自己独特的观点。

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

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

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

我愿意接受各种建议。

4

2 回答 2

2

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

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

为了让您开始,我建议您访问主页上的文档。这里有更多关于定义用户可以做什么的信息,你可以在这里查看如何检查能力。您还需要向要强制执行权限的控制器添加一行,您可以在此处阅读。

如果标准文档不足以让您入门,为什么不看看Railscast 192。它向您展示了如何启动和运行 CanCan,它是一个很好的资源,因为 Ryan Bates 是截屏视频的创建者以及 CanCan 的创建者。如果视频对您来说太快,这里有一个文本版本

于 2011-08-06T06:04:40.857 回答
0

你不要尝试使用 cancan gem 进行角色管理http://rubygems.org/gems/cancan

还是gem install cancan我希望这会有所帮助。

于 2011-08-06T05:55:01.137 回答