Rake route Error " manquant: clé 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 itinéraires.rb

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

  get 'landing/index'

  root 'landing/index'
end

Qu'est-ce qui cause le problème et comment le réparer.

29
demandé sur Tithos 2014-08-31 00:07:14

5 réponses

Rails.application.routes.draw do
  get 'script/index' => 'script#index'
  get 'landing/index' => 'landing#index'
  root 'script#index'
end
45
répondu Kaleidoscope 2014-08-30 20:23:32

Vous pouvez le faire de plusieurs façons, tout cela fonctionne:

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

Penser chemin première et contrôleur#méthode à suivre.

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

9
répondu rtfminc 2017-02-04 23:29:17

Changement root 'landing/index' de root 'landing#index'

3
répondu icedTea 2017-06-13 12:06:06

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

Si vous exécutez une commande qui utilise routes.rb, le fichier doit être exempt d'erreur de la commande fonctionne.

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

1
répondu Mirror318 2016-05-25 22:22:52

Le code de Kaleidoscope fonctionne très bien. Voici une version légèrement concise.

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

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

0
répondu James Parker 2017-01-16 12:35:49