Concerns

重复使用已经定义的路由,避免 config/routes.rb 里出现重复代码,和生成路由规则没有直接联系。

方法

解释

concern

定义(一次只能定义一个)

concerns

调用(一次可调用一个或多个)

举例(使用 concern & concerns 之前):

AppName::Application.routes.draw do
  resources :messages do
    resources :comments
    resources :categories
    resources :tags
  end

  resources :posts do
    resources :comments
    resources :categories
    resources :tags
  end

  # ...
end

举例(使用 concern & concerns 之后):

再次举例:

一些疑问?

即使是去除重复代码,也还有其它方法实现。如:

有必要使用 DSL 吗?

讨论 里 dhh 回答了此问题。

最后更新于

这有帮助吗?