2013-04-04 7 views
0

Je veux un parcours comme:Comment faire ces routes + helpers avec une sémantique/syntaxe ingénieuse?

get '/posts/new'   => 'posts#new' 
get '/:username/posts/:id' => 'posts#show' 
get '/:username/posts'  => 'posts#index' 

Accessible via les aides comme:

new_post_path #=> new - 
post_path(post) #=> show - :username implied from post 
posts_path  #=> index - :username implied from session 
posts_path(user) #=> index - :username explicit 

Je voudrais le faire avec la sémantique de ressources, au lieu de spécifier chaque itinéraire manuellement. Aussi, je ne suis pas sûr de savoir comment rendre les aides d'url intelligentes.

Vous avez des questions?

Répondre

0

Je suppose que ce que vous voulez est d'avoir des routes imbriquées. Cela devrait vous rapprocher de ce que vous cherchez.

dans votre fichier routes.rb:

resources :users do 
    resoures :posts 
end 

Cela fera des chemins comme ceci:

/users 
/users/:user_id 
/users/:user_id/posts 
/users/:user_id/posts/:id 

Ensuite, vous pouvez modifier vos itinéraires à partir de là de sorte que les points /posts/new à vos messages contrôleur avec quelque chose comme ceci:

(non testé et pas sûr que c'est 100% correct donc quelqu'un s'il vous plaît carillon)

resources :users do 
    resoures :posts do 
    match "/posts/new", :to => "posts#new" 
    end 
end 
+0

Je veux des routes imbriquées atypiques. Plutôt que '/ users /: user_id/posts', je veux' /: nom d'utilisateur/messages'. C'est ce qui me rejette. –

+0

Désolé j'ai copié la mauvaise chose. Voir la mise à jour Je pense que c'est là que le «match» entre. – Catfish

Questions connexes