4

假设我有一个SessionsController,它控制用户登录和注销,但我真正需要的唯一操作是的(用于显示登录表单)、创建(用于身份验证和登录)和销毁以注销用户。

如果我的控制器中只有这三个操作,是否有任何问题,或者我是否必须全部实现它们才能使其正确 RESTful?

第二个小问题。有人说脚手架不好,应该手写代码,但我觉得它非常有用且节省时间。

使用脚手架可以吗,还是应该避免它是邪恶的,为什么?

4

3 回答 3

10

绝对可以只创建您想要支持该资源的 RESTful 操作。您不必定义所有 7 个操作。事实上,我的大多数控制器并没有使用全部 7 个动作。

使用脚手架可以吗,还是应该避免它是邪恶的,为什么?

内置的 Rails 脚手架主要是为了帮助您在开始时起步。出于几个原因,我个人不会将它用于日常开发。

  • 当我想使用现有的应用程序时,它会生成一个 CSS 和布局文件
  • 它生成所有控制器动作(就像我说的我通常不想要所有这些动作)
  • 它为我几乎不想要的每一个动作创建一个 XML 格式
  • 当我需要“编辑”和“新”操作时,它不会将表单放在部分位置
  • 我有时会使用不同的测试库(例如 Shoulda 或 RSpec)

但是,我喜欢使用脚手架来加快开发速度。这就是我创建几乎一直使用的nifty_scaffold 生成器的原因。它不存在上述问题。

于 2009-08-15T17:40:17.930 回答
4

仅执行您需要的那些操作并没有错。在 Rails 2.3 中,您还可以在路由中更加明确。

map.resources :foo, :only => [:create, :destroy, :new]

于 2009-08-15T17:33:07.693 回答
1

记住 REST 只有 4 个动词 GET、POST、更新放置和删除。Rails 中的编辑和新操作是 GET 动词的变通方法,用于显示用于编辑资源的表单。index 操作是对不同资源的 GET,它只是与其他资源捆绑在一起,因为在应用程序开发环境中,将它放在同一个文件中更有意义。

于 2009-08-15T18:18:57.070 回答