关注

为了避免在嵌套路由中重复,关注点提供了一种共享可重用的公共资源的好方法。要创建关注点,请使用 routes.rb 文件中的 concern 方法。该方法需要一个符号和块:

concern :commentable do
  resources :comments
end

虽然本身不​​创建任何路由,但此代码允许在资源上使用:concerns 属性。最简单的例子是:

resource :page, concerns: :commentable

等效的嵌套资源如下所示:

resource :page do
  resource :comments
end

例如,这将构建以下路由:

/pages/#{page_id}/comments
/pages/#{page_id}/comments/#{comment_id}

为了使问题有意义,必须有多种资源利用这种关注。其他资源可以使用以下任何语法来调用问题:

resource :post, concerns: %i(commentable)
resource :blog do
  concerns :commentable
end