2013-06-27 12 views
5

Ecco come appare uno spazio dei nomi comune.Aggiunta del prefisso a un helper di route con nome nello spazio dei nomi

namespace :admin do 
    resources :posts 
end 

E crea un percorso denominato come questo;

new_admin_post_path 

Ecco la mia domanda; come posso aggiungere un prefisso (come "nuovo" in questo esempio) a una rotta denominata sotto namespace?

Diciamo che la definizione del mio percorso piace a questo;

namespace :admin do 
    get 'post/new' => 'posts#new', as: 'post' 
end 

E crea un percorso denominato come;

admin_post_path 

voglio aggiungere il prefisso "nuovo" a questo percorso di nome e di far sembrare new_admin_post_path e non voglio usare resources.

+0

il controller dei tuoi post si trova nello spazio dei nomi admin? Se sì, puoi ottenerlo dal primo modo in cui hai scritto. –

+0

Sì, sì. Ma non voglio farlo usando o personalizzando il metodo 'resources'. –

risposta

9

Basta provare il codice nei percorsi.

namespace :admin, as: '' do 
    get '/post/new' => 'posts#new', as: 'new_admin_post' 
end 

Se non si desidera rendere lo spazio dei nomi admin come nullo, è possibile farlo. per questo è necessario inserire tale route fuori dallo spazio dei nomi: blocco admin in route

namespace :admin do 
    # your other routes 
end 

get '/admin/post/new' => 'admin/posts#new', :as => 'new_admin_post' 
+0

Ci sono altre rotte mappate nello spazio dei nomi 'admin', quindi non c'è alcun motivo per eliminare i prefissi" admin "e omettere ogni singolo manualmente. Se è possibile, voglio poter aggiungere prefissi ad una named route sotto namespace, come 'resources' in grado di fare. –

+0

si prega di controllare la risposta modificata. –

+1

Non mi piace l'idea di dover uscire dal namespace ma credo che per ora andrò con questa soluzione. Ho controllato un bel po 'di opzioni e ho letto qualche codice sorgente, ma è molto dispendioso in termini di tempo per un problema come questo. –

Problemi correlati