关于Rails路线

时间:2014-11-12 07:42:13

标签: ruby-on-rails routes

我的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+/

正如您所看到的,这些路线是相似的,所以我想知道如何将这些路线合并到一个路线?

1 个答案:

答案 0 :(得分:1)

['mem', 'group', 'article', 'photo'].each do |r|
    get "/#{r}(/:id)(/:action)(.format)" ,:controller=>"sns_#{r}",id: /\d+/
end

从未尝试过routes.rb文件中的循环,但应该可以正常工作。 它不是正确的一个路由,它将为数组的每个元素创建一个路由,但至少你会避免拼写错误。而且,regexp通常较慢。