2014-09-01 79 views
0

我想要的某些部分以某种方式简化此:试图简化路由

namespace :api do 
    namespace :v1 do 
     get ":domain/test1" => "home#test1", constraints: { domain: /[0-z\.]+/ }, defaults: { format: :json } 
     get ":domain/test2" => "home#test2", constraints: { domain: /[0-z\.]+/ }, defaults: { format: :json } 
     get ":domain/test3" => "home#test3", constraints: { domain: /[0-z\.]+/ }, defaults: { format: :json } 
     # ........... and so on 
    end 
    end 

有什么办法?

+0

可能重复:http://stackoverflow.com/questions/ 10850381 /路线上的正则表达式 – mudasobwa 2014-09-01 08:02:25

+1

您试图简化哪方面?重复的约束/默认值? – 2014-09-01 08:43:11

回答

0

也许你想使用某种method在你的路由:

#config/routes.rb 
def record id 
    get ":domain/#{id}" => "home#test#{id}", constraints: { domain: /[0-z\.]+/ }, defaults: { format: :json } 
end 

namespace :api do 
    namespace :v1 do 
     x = 10 
     x.times do |i| 
      record i 
     end 
    end 
end 

非常当然,臃肿,记忆明智。

杀手是:domain约束。我准备创建一个resources :home调用,其中包含一些自定义方法 - 但每次您引用所需的路由时都必须手动定义约束条件