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.
5 réponses
Rails.application.routes.draw do
get 'script/index' => 'script#index'
get 'landing/index' => 'landing#index'
root 'script#index'
end
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'
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'
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 #
.