2009-09-17 21 views
8

Ho un modello Utente. Se faccio:Come definire un percorso personalizzato nelle rotaie?

def my_action 
    @user = User.new 
end 

poi

<% form_for(@user) do |f| %> 

ottengo

undefined method `users_path' for #<ActionView::Base:0x1b4b878> 

Il che ha senso perché non ho tracciato andando map.resources :users. .. ma io non voglio fare in questo modo perché non ho bisogno di tutte le risorse.

Come posso semplicemente definire questo metodo user_path nei miei percorsi?

risposta

5

È inoltre possibile customize restful routes. Ad esempio nella mia applicazione solo le azioni index e show sono appropriate per alcuni controller. Nel mio file routes.rb ho alcuni percorsi come questo:

map.resources :announcements, :only => [:index, :show] 

È inoltre possibile utilizzare :except se questo è più appropriato.

3

È possibile mappare percorsi personalizzati nel file routes.rb come questo ...

map.users '/users', :controller => 'user', :action => 'index' 

Questo ti dà la users_path aiutante che stai cercando.

+0

Grazie. È una convenzione? Come il percorso per l'indice è model_path? – marcgg

+0

Non è corretto. Questo non risolverà la pubblicazione del modulo perché sta andando all'azione sbagliata. map.resources: users,: only => [: new,: create] è la convenzione appropriata. –

3

Da quando sono venuto qui in cerca di un modo per creare soccorritori in routes.rb, ecco il modo per farlo:

get '/users/:id/' =>'users#show', :as => :user 
Problemi correlati