我需要在routes.rb
文件中的多个位置定义相同的路线。我已经将其放置在my_routes
方法中,但是我不喜欢直接在我的路由文件中使用方法。
执行此操作的正确方法是什么?
这是我目前的做法:
Rails.application.routes.draw do
def my_routes
get ":_controller" => "my_controller#index"
...
end
scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do
my_routes
end
my_routes
end
我意识到我可以在上面的示例中简单地将":locale"
替换为(":locale")
,以避免不得不两次引用my_routes
,但这不是我要问的重点。我的问题是如何将路由定义转换为方法。
答案 0 :(得分:0)
在这种情况下,我会考虑使用。 像这样:
concern :my_routes do
get ":_controller" => "my_controller#index"
end
scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do
concerns :my_routes
end
concerns :my_routes