我的Rails4应用程序有一些路线
get '/mem(/:id)(/:action)(.format)' ,:controller=>'sns_mem',id: /\d+/
get '/group(/:id)(/:action)(.format)' ,:controller=>'sns_group',id: /\d+/
get '/article(/:id)(/:action)(.format)' ,:controller=>'sns_article',id: /\d+/
get '/photo(/:id)(/:action)(.format)' ,:controller=>'sns_photo',id: /\d+/
正如您所看到的,这些路线是相似的,所以我想知道如何将这些路线合并到一个路线?
答案 0 :(得分:1)
['mem', 'group', 'article', 'photo'].each do |r|
get "/#{r}(/:id)(/:action)(.format)" ,:controller=>"sns_#{r}",id: /\d+/
end
从未尝试过routes.rb文件中的循环,但应该可以正常工作。 它不是正确的一个路由,它将为数组的每个元素创建一个路由,但至少你会避免拼写错误。而且,regexp通常较慢。