Rails——更好的实践:资源丰富的路由或HTTP动词约束



在使用资源路由和使用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个动作。

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

  1. 有人读你的路由文件将从一个共同的理解到底发生了什么,而不是单独阅读每个手动定义的路由。
  2. 更简洁。如果你包含了所有的动词,你可以得到一个漂亮而干净的resources :posts。如果只包含一个选项,则只需要使用:only:except指定一个选项。嵌套路由确实打破了这一点。
  3. 这是在guides.rubyonrails.org中定义的约定,正如sevenseacat指出的。

对于rails这样的库,通常有关于预期和首选代码实现的指南。Rails的指南可以在guides.rubyonrails.org找到。您应该习惯于先查看他们的文档,特别是在遇到这样的主题时,以便找到关于首选哪种方法的答案。

最新更新