试图简化路线的某些部分

时间:2014-09-01 07:58:04

标签: ruby-on-rails ruby

我想以某种方式简化这个:

  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

有什么办法吗?

2 个答案:

答案 0 :(得分:1)

也许这可以帮到你?

http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments

对于您的问题,您必须使用:

get '/stories/:name', to: redirect('/posts/%{name}')

答案 1 :(得分: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调用,其中包含一些自定义方法 - 但是每次引用所需的路径时,您都必须手动定义约束