【问题标题】:Rails - which is better practice: Resoureful routing or HTTP verb constraints? [closed]Rails - 哪个是更好的实践:Resoureful 路由或 HTTP 动词约束? [关闭]
【发布时间】:2014-05-07 05:08:50
【问题描述】:

在使用资源路由和使用 HTTP 动词约束之间是否有推荐的做法?

例如,哪个更好:

resources :posts, only: [:index, :show] do
  resources :comments, only: [:index]
end

scope '/posts' do
  get '' => 'posts#index'
  get '/:id' => 'posts#show'
  get '/comments' => 'posts#comments'
end

编辑:明确地说,我专门针对我只需要 1 或 2 个操作的情况。

【问题讨论】:

标签: ruby-on-rails rest ruby-on-rails-4


【解决方案1】:

您应该使用第一个。在你的路由文件中使用它们的助手是 Rails 的惯例。这完成了几件事:

  1. 阅读您的路线文件的人将获得对具体情况的共同理解,而无需单独阅读每个手动定义的路线。
  2. 更简洁。如果你包含了所有的动词,你可以使用一个漂亮而干净的resources :posts。如果您只包括一个,您只需使用:only:except 指定一个选项。嵌套路由真的把这点炸开了。
  3. 正如 Sevenseacat 指出的那样,这是 guides.rubyonrails.org 中定义的约定。

对于诸如 rails 之类的库,通常有关于代码的预期和首选实现的指南。 Rails 的指南位于guides.rubyonrails.org。您应该感到自在,并习惯于先查看他们的文档,尤其是对于此类主题,以找到有关首选方法的答案。

【讨论】:

  • 感谢您花时间解释而不是简单地提供链接。我确实读过 Rails 的指南;请理解,当我最终总是用“only”覆盖默认值时,我觉得不清楚,特别是当我只需要 1 或 2 个操作时。
猜你喜欢
  • 2012-05-16
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
相关资源
最近更新 更多