Skip to content

Instantly share code, notes, and snippets.

@carlosbrando
Created December 10, 2009 06:03
Show Gist options
  • Save carlosbrando/253155 to your computer and use it in GitHub Desktop.
Save carlosbrando/253155 to your computer and use it in GitHub Desktop.
A nova DSL de rotas do Rails 3
ActionController::Routing::Routes.draw do |map|
# A prioridade é baseada na ordem da criação:
# criado primeiro -> maior prioridade.
# Exemplo de uma rota comum:
match 'products/:id', :to => 'catalog#view'
# Tenha em mente que você pode atribuir outros valores além de :controller e :action
# Exemplo de uma rota nomeada:
match 'products/:id/purchase', :to => 'catalog#purchase', :as => :purchase
# Esta rota pode ser invocada utilizando purchase_url(:id => product.id)
# Exemplo utilizando resources (mapeia verbos HTTP para ações do controller automaticamente)
resources :products
# Exemplo utilizando resources com opções:
resources :products do
member do
get :short
post :toggle
end
collection do
get :sold
end
end
# Exemplo utilizando resource com sub-resources:
resources :products do
resources :comments, :sales
resource :seller
end
# Exemplo mais complexo de uso de resources com sub-resources:
resources :products do
resources :comments
resources :sales do
get :recent, :on => :collection
end
end
# Exeplo utilizando resource com um namespace:
namespace :admin do
# Direciona /admin/products/* para Admin::ProductsController
# (app/controllers/admin/products_controller.rb)
resources :products
end
# Você pode definir a home do seu site utilizando "root"
# Lembre-se de apagar o arquivo public/index.html.
root :to => "welcome"
# Você pode listar todas as rotas disponíveis com "rake routes"
# Deixe a rota padrão com a prioridade mais baixa possível.
# Nota: A rota padrão torna todas as actions em qualquer controller
# acessíveis via solicitações GET. Você deve considerar a remoção
# ou comentar esta linha se estiver usando rotas nomeadas e recursos.
match ':controller(/:action(/:id(.:format)))'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment