假设我有SessionsController
,它控制用户登录和退出,但我真正需要的唯一操作是新(用于显示登录表单),创建(用于身份验证和登录)和销毁用于注销用户。
如果我在控制器中只有这三个动作,或者我是否必须全部实现它们以使其正确RESTful,是否有任何问题?
第二个小问题。有人说 scaffolding 很糟糕,而且应该手工编写代码,但我发现它非常有用且省时。
使用脚手架是否可以,或者是否应该避免它是邪恶的?为什么?
答案 0 :(得分:10)
完全可以创建您想要支持该资源的RESTful操作。您不必定义所有7个操作。实际上,我的大多数控制器都不使用全部7个动作。
使用脚手架是否可以,或者是它 应该避免的邪恶以及为什么?
内置的Rails脚手架主要用于在开始时帮助起飞。出于某些原因,我个人不会将它用于日常开发。
然而,我是脚手架加速开发的粉丝。这就是为什么我创建了几乎所有时间都使用的nifty_scaffold generator。它没有上述问题。
答案 1 :(得分:4)
仅实施您需要的那些操作没有任何问题。在Rails 2.3中,您也可以在路线中更加明确。
map.resources:foo,:only => [:create,:destroy,:new]
答案 2 :(得分:1)
记住REST只有4个动词GET,POST, UPDATE PUT和DELETE。
Rails中的编辑和新操作是GET动词的解决方法,用于显示编辑资源的表单。索引操作是在不同资源上的GET,它与其他资源捆绑在一起,因为在应用程序开发上下文中将它放在同一个文件中更有意义。