web-dev-qa-db-fra.com

Erreur de rake route "Manquante: touche d'action sur la définition des routes"

Je reçois

$ rake routes
rake aborted!
ArgumentError: Missing :action key on routes definition, please check your routes.
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:243:in `default_controller_and_action'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:117:in `normalize_options!'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:65:in `initialize'
/usr/local/rvm/gems/Ruby-2.1.2/gems/actionpack-4.1.5/lib/action_dispatch/routing/mapper.rb:1487:in `new'
/usr/local/r................

Voici mes routes.rb

Rails.application.routes.draw do
  get 'script/index'

  get 'landing/index'

  root 'landing/index'
end

Quelle est la cause du problème et comment puis-je le résoudre.

33
Tithos
Rails.application.routes.draw do
  get 'script/index' => 'script#index'
  get 'landing/index' => 'landing#index'
  root 'script#index'
end
45
Kaleidoscope

Vous pouvez le faire de plusieurs façons, celles-ci fonctionnent toutes:

  • obtenir 'script/index'
  • get 'script/index' => 'script # index'
  • obtenez 'script/index', en: 'script # index'

Pensez à chemin premier et contrôleur # méthode à suivre. 

La racine est un cas particulier, toujours: root 'script # index'

10
rtfminc

Changez root 'landing/index' En root 'landing#index'

3
icedTea

J'ai eu la même erreur en cours d'exécution Rails g

Si vous exécutez une commande utilisant routes.rb, le fichier doit être exempt d'erreur pour que la commande fonctionne.

Dans votre cas, vous aviez des chemins, mais vous ne les avez pas associés à des actions, le fichier routes.rb était donc cassé. Vous aviez besoin de quelque chose comme get 'landing/index' => 'my_controller#my_action'

1
Mirror318

Le code de Kaleidoscope fonctionne très bien. Vous trouverez ci-dessous une version légèrement concise. 

Rails.application.routes.draw do
  get 'script/index'
  get 'landing/index'
  root 'script#index'
end

Les rails ajoutent le côté gauche de la flèche (=>) par convention en remplaçant / par #.

0
James Parker