首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中应用REST的正确方法3多种用户类型

在Rails中应用REST的正确方法3多种用户类型
EN

Stack Overflow用户
提问于 2011-09-17 10:10:22
回答 1查看 125关注 0票数 0

我想将REST应用到我的Rails3应用程序中。

我了解基础知识,但我仍然是一个菜鸟,希望得到一些帮助或建议,如果这是正确的。

我有一个用户模型。然而,我有三种用户,因为他们在应用程序中有不同的角色。

当我创建时,比如说庆祝者,我需要在创建操作中做其他事情,这些事情与我需要为经理做的事情不同,这也与我需要为参与者做的事情不同。

所以我在考虑创建三个资源。

代码语言:javascript
复制
1.Celebrant - new create only
2.Manager -new create only
3.Participant. -new create only

这样,我就可以让这三个REST成为新的,并创建与每个REST不同的操作。

这是最好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-17 17:58:49

几个想法…

1.干燥

如果CelebrantManagerParticipant都扩展了User,那么最好有一个控制器。否则,3个控制器之间的大部分代码将是相同的。

2. Fat Models, Skinny Controllers

控制器只是将参数传递给模型,所以实际上您应该只需要在控制器中的模型上调用一个方法,比如User.create。这使得你的控制器不会执行任何逻辑,所以你不需要3个独立的控制器。

查看inherited_resources gem,几乎可以删除控制器中的所有代码。

这样做,您就可以处理在每个User模型子类中创建之前/之后发生的事情。

3.使用角色模型而不是用户子类

我以前遇到过你的问题。我从3个用户类开始。但我很快就想对角色做更多的事情,添加更多,模糊界限,等等。通过使用1个has_many :roles (有角色插件)的User模型,您可以在基于角色的用户模型中的保存回调中处理所有自定义逻辑。现在您的控制器是精简的,并且您不必管理3个类。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7451995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档