2014-02-18 2 views
1

При интеграции моего проекта с сторонним проектом возникает дикий конфликт.Маршруты Rails - регулярное выражение или перенаправление области

Я использую модель множественного числа в качестве имен маршрутов, например:

http://my_app/users/search (plural) 

В то время как они используют

http://my_app/user/search (singular) 

Эта модель используется для 19 различных маршрутов распространяются через 4 модели, так я не '' действительно нравится дублировать каждый из маршрутов только для поддержки другого проекта.

Есть ли способ использовать регулярное выражение или перенаправление в области, чтобы избежать дублирования кода?

В настоящее время у меня есть:

... 
scope 'users' do 
    get 'search' 
    scope 'id' do 
    get '' 
    get 'ping' 
    end 
end 
... 

Я надеялся на что-то вроде:

... 
scope 'user(s)?' do 
    get 'search' 
    scope 'id' do 
    get '' 
    get 'ping' 
    end 
end 

Или:

scope 'user', to: redirect('users') 

ответ

5
scope ':pattern', constraints: { pattern: /user(s)?/ } do 
    ... 
end 
+1

нет необходимости использовать круглые скобки, вы можете просто использовать '/ users? /' regexp – trushkevich

Смежные вопросы