2

I want to turn my path_names translated only once, and turns he available for all of routes in the routes.rb.

This is my routes.rb now:

PATH_NAMES = { new: 'novo', edit: 'editar', show: 'ver' }

Rails.application.routes.draw do

  devise_for :users, controllers: { omniauth_callbacks: 'omniauth_callbacks',
                                    registrations: 'registrations' }

  resources :movements, :path => 'fluxo-de-caixa', path_names: PATH_NAMES
  resources :movement_categories, :path => '/fluxo-de-caixa/categorias', path_names: PATH_NAMES
  resources :installments, :path => 'parcelas', path_names: PATH_NAMES
  resources :contracts, :path => 'contratos', path_names: PATH_NAMES
  resources :accounts, :path => 'contas', path_names: PATH_NAMES
  resources :events, :path => 'eventos', path_names: PATH_NAMES
  resources :users, :path => 'usuarios', path_names: PATH_NAMES
  resources :spectator, :path => 'espectadores', path_names: PATH_NAMES

  devise_scope :user do
    get '/cadastrar' => 'devise/registrations#new'
    get '/entrar' => 'devise/sessions#new'
    get '/editar' => 'devise/registrations#edit'
    delete '/sair' => 'devise/sessions#destroy'
  end

  root 'home#index'
end

I hope you help me!!

My regards! ;D

Bruno Casali
  • 1,339
  • 2
  • 17
  • 32

1 Answers1

4

use scope:

scope(path_names: { new: 'novo', edit: 'editar', show: 'ver' }) do
  resources :movements, :path => 'fluxo-de-caixa'
  resources :movement_categories, :path => '/fluxo-de-caixa/categorias'
  resources :installments, :path => 'parcelas'
  resources :contracts, :path => 'contratos'
  resources :accounts, :path => 'contas'
  resources :events, :path => 'eventos'
  resources :users, :path => 'usuarios'
  resources :spectator, :path => 'espectadores'
end
BroiSatse
  • 44,031
  • 8
  • 61
  • 86