我想将REST应用到我的Rails3应用程序中。
我了解基础知识,但我仍然是一个菜鸟,希望得到一些帮助或建议,如果这是正确的。
我有一个用户模型。然而,我有三种用户,因为他们在应用程序中有不同的角色。
当我创建时,比如说庆祝者,我需要在创建操作中做其他事情,这些事情与我需要为经理做的事情不同,这也与我需要为参与者做的事情不同。
所以我在考虑创建三个资源。
1.Celebrant - new create only
2.Manager -new create only
3.Participant. -new create only这样,我就可以让这三个REST成为新的,并创建与每个REST不同的操作。
这是最好的方法吗?
发布于 2011-09-17 17:58:49
几个想法…
1.干燥
如果Celebrant、Manager和Participant都扩展了User,那么最好有一个控制器。否则,3个控制器之间的大部分代码将是相同的。
2. Fat Models, Skinny Controllers
控制器只是将参数传递给模型,所以实际上您应该只需要在控制器中的模型上调用一个方法,比如User.create。这使得你的控制器不会执行任何逻辑,所以你不需要3个独立的控制器。
查看inherited_resources gem,几乎可以删除控制器中的所有代码。
这样做,您就可以处理在每个User模型子类中创建之前/之后发生的事情。
3.使用角色模型而不是用户子类
我以前遇到过你的问题。我从3个用户类开始。但我很快就想对角色做更多的事情,添加更多,模糊界限,等等。通过使用1个has_many :roles (有角色插件)的User模型,您可以在基于角色的用户模型中的保存回调中处理所有自定义逻辑。现在您的控制器是精简的,并且您不必管理3个类。
希望这能有所帮助。
https://stackoverflow.com/questions/7451995
复制相似问题