2010-09-02 2 views
1

Прежде всего, этот вопрос касается Rails 2.x.Как переименовать маршруты REST по умолчанию в рельсах?

Я живу в стране испанского языка, а URL-адреса для моих веб-приложений должны быть на испанском языке. До сих пор я всегда создавал испанские действия для своих контроллеров, но это просто отключает многие из преимуществ использования REST, например, встроенного файла PUT method => edit action.

Итак, я хочу знать, как изменить файл routes.rb переадрессаций все трафик для всех моего существующие и будущие ресурсы без потери RESTful, стандартных.

Возможно ли это?

Пример:

POST /inmuebles 
:controller => inmuebles, :action => create 

GET /inmuebles 
:controller => inmuebles, :action => index 

GET /inmuebles/nuevo 
:controller => inmuebles, :action => new 

ответ

5

Piggy отступая ответа Эндрю V, но не смог просмотреть мой комментарий ...

Поскольку у всех ваших ресурсов, вероятно, будут одинаковые действия, требующие одинаковых имен путей, вы можете использовать блок with_options для их установки для всех маршрутов.

Например:

map.with_options :path_names => {:new => 'nuevo', :edit => 'editar'} do |rt| 
    rt.resources :ineubles 
    rt.resources :pollos 
    rt.resources :gatos 
end 
+0

Ничего себе, ничего себе, ничего себе! Если я это сделаю, мне больше не придется объявлять 'map.resources: gatos'? –

+1

Нет, вам не придется объявлять map.resources для любого из маршрутов в этом блоке. Использование with_options, по существу, делает все, что имеет его вызывающий объект (map), и передает это как переменную блока, которую я назвал rt (short для маршрута). –

1

Используйте :path_names вариант:

map.resources :inmeubles, :path_names => { :new => 'nuevo'}

+0

мне нужно сделать это со всеми своими ресурсами, не так ли? –

+0

Ой, подождите ... Мне нужно делать «map.resources: inmeubles» для всех ресурсов, так что это просто ': path_names => {: new => 'nuevo',: edit => 'editar'}' и так ... не правда ли? –

+0

Да, это правильно. –

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