【发布时间】:2011-05-23 17:26:25
【问题描述】:
我正在研究 Rails,并有一些高级问题,这些问题通常围绕用户、他们的工作以及如何构建或布局新的 Rails 应用程序。我真的只是在寻找不同的想法(或对我在下面尝试过的未受教育的猜测的验证)及其优缺点。
一个新项目将拥有用户、管理员,我们称他们为利益相关者。
显然,每个人都是人,每个人都需要登录,并且会有不同的“点名”。我知道有很多方法可以解决这个问题,但我正在寻找“Rails”方法来尽可能多地利用所谓的“约定优于配置”。
- 管理员拥有超能力,可以在任何地方看到和去
- 利益相关者只能对其网站区域进行更改
- 用户(也许有一个更好的名字,因为所有角色在某种意义上 'users') 只能查看内容 由利益相关者创建和 可选择对它们发表评论。
那么,如何处理...
登录:使用单一登录表单,然后分配不同的点数?或将用户发送到一个登录名和管理员,另一个,等等......?优点缺点?我想维护一个 User 类比拆分它们更容易......但是安全性呢?
路线:
为了避免嵌套路由(许多人建议不要这样做),我希望利益相关者只看到他们自己的“赌注”。因此,当他们登录时,他们会立即看到他们的小区域。想知道如果不是 /stakeholders/stakeholder_id/stakes/new 也许我可以只拥有 /stakes/new。这是如何处理的?在用户?在会议中?曲奇饼?
那么管理员呢?我已经看到此卷的示例移至其自己的“命名空间”(我认为?),其中所有管理任务都以 /admin/ 开头...这很常见吗?还是有更好的方法?
最后,当一个较高的人(
admin或stakeholder)想要“共享”一个视图或控制器,或任何代码时会发生什么,使用通过较小的滚动(user)?如果admin在admin/下有自己的控制器、模型和视图,那么使用/stake/new是否合适,还是我们还需要维护/admin/stake/new?
对不起,我的困惑和冗长。任何帮助或示例/文档将不胜感激...
【问题讨论】:
-
推荐你在railscasts.com上搜索授权,一。一旦您查看了许多授权库,您就会问一些很容易解决的基本问题。祝你好运。
-
我知道授权是本土或 authlogic 或 devise 等......我是 不是 i> 了解它们与应用程序本身结构的关系。现在,我还没有使用一个,所以当我阅读每个人的文档时,这可能会变得清晰吗?或者也许所有人都使用了一种“标准”的整体方法(Rails 方式),我想这就是我要问的......
-
按照完整软件的建议与它们一起玩。一旦你这样做,它会变得更加清晰。对于像利益相关者这样的东西,将查询范围仅限于当前登录的利益相关者是非常简单的。即只需调用@current_stakeholder.stakes.new 等。
标签: ruby-on-rails session cookies namespaces