假设我有一个SessionsController
,它控制用户登录和注销,但我真正需要的唯一操作是新的(用于显示登录表单)、创建(用于身份验证和登录)和销毁以注销用户。
如果我的控制器中只有这三个操作,是否有任何问题,或者我是否必须全部实现它们才能使其正确 RESTful?
第二个小问题。有人说脚手架不好,应该手写代码,但我觉得它非常有用且节省时间。
使用脚手架可以吗,还是应该避免它是邪恶的,为什么?
假设我有一个SessionsController
,它控制用户登录和注销,但我真正需要的唯一操作是新的(用于显示登录表单)、创建(用于身份验证和登录)和销毁以注销用户。
如果我的控制器中只有这三个操作,是否有任何问题,或者我是否必须全部实现它们才能使其正确 RESTful?
第二个小问题。有人说脚手架不好,应该手写代码,但我觉得它非常有用且节省时间。
使用脚手架可以吗,还是应该避免它是邪恶的,为什么?
绝对可以只创建您想要支持该资源的 RESTful 操作。您不必定义所有 7 个操作。事实上,我的大多数控制器并没有使用全部 7 个动作。
使用脚手架可以吗,还是应该避免它是邪恶的,为什么?
内置的 Rails 脚手架主要是为了帮助您在开始时起步。出于几个原因,我个人不会将它用于日常开发。
但是,我喜欢使用脚手架来加快开发速度。这就是我创建几乎一直使用的nifty_scaffold 生成器的原因。它不存在上述问题。
仅执行您需要的那些操作并没有错。在 Rails 2.3 中,您还可以在路由中更加明确。
map.resources :foo, :only => [:create, :destroy, :new]
记住 REST 只有 4 个动词 GET、POST、更新放置和删除。Rails 中的编辑和新操作是 GET 动词的变通方法,用于显示用于编辑资源的表单。index 操作是对不同资源的 GET,它只是与其他资源捆绑在一起,因为在应用程序开发环境中,将它放在同一个文件中更有意义。