Pessal como resolver isso: Routing Error - No route matches "/contexts" with {:method=>:get}

Pessoal estou seguindo a apostila "RAILS PARA SUA DIVERSÃO E LUCRO"que peguei na net, mas estão surgindo varios erros.
quando tentei acessar a URL http://localhost:3000/contexts
SURGIU O SEGUINTE ERRO:

[color=red]Routing Error

No route matches "/contexts" with {:method=>:get}[/color]

meu arquivo routes.rb

ActionController::Routing::Routes.draw do |map|
  # The priority is based upon order of creation: first created -> highest priority.

  # Sample of regular route:
  #   map.connect 'products/:id', :controller => 'catalog', :action => 'view'
  # Keep in mind you can assign values other than :controller and :action

  # Sample of named route:
  #   map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
  # This route can be invoked with purchase_url(:id => product.id)

  # Sample resource route (maps HTTP verbs to controller actions automatically):
  #   map.resources :products

  # Sample resource route with options:
  #   map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }

  # Sample resource route with sub-resources:
  #   map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
  
  # Sample resource route with more complex sub-resources
  #   map.resources :products do |products|
  #     products.resources :comments
  #     products.resources :sales, :collection => { :recent => :get }
  #   end

  # Sample resource route within a namespace:
  #   map.namespace :admin do |admin|
  #     # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
  #     admin.resources :products
  #   end

  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
   map.root :controller => "home"

  # See how all your routes lay out with "rake routes"

  # Install the default routes as the lowest priority.
  # Note: These default routes make all actions in every controller accessible via GET requests. You should
  # consider removing the them or commenting them out if you're using named routes and resources.
  
  map.connect ':controller/:actions/:id'
  map.connect ':controller/:actions/:id.:format'
 
end

Alguém sabe como eu posso concertar esse erro?
Obrigado

Voce precisa criar uma rota para contexts.

algo ± assim:

Crie a rota para contexts

map.resources :contexts

Dessa forma: map.resources :contexts
foi exibido o seguinte erro:

[color=red]NoMethodError in Contexts#index
Showing app/views/contexts/index.html.erb where line #10 raised:

undefined method `edit_contexts_path’ for #<ActionView::Base:0x38673e4>

Extracted source (around line #10):

7: <% @contexts.each do |contexts| %>
8: <tr>
9: <td><%= link_to ‘Show’, contexts %></td>
10: <td><%= link_to ‘Edit’, edit_contexts_path(contexts) %></td>
11: <td><%= link_to ‘Destroy’, contexts, :confirm => ‘Are you sure?’, :method => :delete %></td>
12: </tr>
13: <% end %>[/color]

Com essa outra
[color=blue]map.contexts ‘/contexts’, :controller => ‘contexts’, :action => ‘action’[/color]o seguinte foi exibido:

[color=green]Unknown action
No action responded to action. Actions: create, destroy, edit, index, new, show, and update[/color]

Pessoal e agora? o que faço? a apostila que estou utilizando é de uma versão mais antiga do rails, deve ser por isso que esta dando alguns erros.
qual a diferença dos 2 ?

[color=blue]map.contexts ‘/contexts’, :controller => ‘seu_controller’, :action => ‘sua_action’ [/color]
e
[color=darkblue]map.resources :contexts [/color]

depois de ter feito esse "mapeamento" o que devo fazer agora?
a apostila que estou utilizando é de uma versão antiga a versao que utilizo é a 2
Obrigado

no seu controller chamado contexts, cria a seguinte action:

def test #nao precisa ter codigo aqui por enquanto! end

e coloque assim no seu routes.rb

[quote=andregustavo.castro]Dessa forma: map.resources :contexts
foi exibido o seguinte erro:

[color=red]NoMethodError in Contexts#index
Showing app/views/contexts/index.html.erb where line #10 raised:

undefined method `edit_contexts_path’ for #<ActionView::Base:0x38673e4>

Extracted source (around line #10):

7: <% @contexts.each do |contexts| %>
8: <tr>
9: <td><%= link_to ‘Show’, contexts %></td>
10: <td><%= link_to ‘Edit’, edit_contexts_path(contexts) %></td>
11: <td><%= link_to ‘Destroy’, contexts, :confirm => ‘Are you sure?’, :method => :delete %></td>
12: </tr>
13: <% end %>[/color]

Com essa outra
[color=blue]map.contexts ‘/contexts’, :controller => ‘contexts’, :action => ‘action’[/color]o seguinte foi exibido:

[color=green]Unknown action
No action responded to action. Actions: create, destroy, edit, index, new, show, and update[/color]

Pessoal e agora? o que faço? a apostila que estou utilizando é de uma versão mais antiga do rails, deve ser por isso que esta dando alguns erros.
qual a diferença dos 2 ?

[color=blue]map.contexts ‘/contexts’, :controller => ‘seu_controller’, :action => ‘sua_action’ [/color]
e
[color=darkblue]map.resources :contexts [/color]

depois de ter feito esse "mapeamento" o que devo fazer agora?
a apostila que estou utilizando é de uma versão antiga a versao que utilizo é a 2
Obrigado

[/quote]

Na verdade, você não precisa mapear nenhum rota estas rotas abaixo:

map.connect ':controller/:actions/:id'  
map.connect ':controller/:actions/:id.:format'  

Conseguem fazer todo o trabalho isso se você não está utilizando REStFul, se estiver deve mapear como o colega falou

map.resources :nome_do_controlador

Agora para resolver seu problema me diga uma coisa, você está conseguindo acessar outros controladores, ou esse é o primeiro que tente acessar?

Então galera estou enfrentando um problema parecido com esse.

eu tenho um método teste dentro de um controller relatorios

eu quero chamar esse metodo teste, mas quando eu chamo ele assim relatorios/teste ele apresenta esse erro

Unknown action

No action responded to show. Actions: index and teste

eu já fiz na rota isso aqui:

mas não funciona
da o mesmo erro

Unknown action

No action responded to show. Actions: index and teste

esse funcionou mas eu não quero isso quero chamar teste_relatorios_path

Olá pessoal

Eu tava com este problema também
e no meu caso foi só eu entrar no diretório config onde tem a pagina index.html que é a que aparece quando se digita http://localhost:3000
e deletar ela e depois entrar no routes.rb e tirar o comentario “#” da linha “root :to => “welcome#index”” e mudar o “welcome” pro nome do seu controller no meu caso ficou
root :to => “eventos#index” e pronto.

OBS: digitem http://localhost:3000 direto no navegador sem o nome do seu controller após a “/”.

Espero que consigam fiquem com Deus!
:smiley:

resolvi meu problema fazendo:./script/generate controller NOME