différence entre les générateurs de ressources et de contrôleurs
quand je fais
rails g model user name:string
rails g controller users index create new destroy show
et de modifier le fichier config/routes.rb ajouter:
resource :users
bundle exec rake itinéraires donne:
users POST /users(.:format) {:action=>"create", :controller=>"users"}
new_users GET /users/new(.:format) {:action=>"new", :controller=>"users"}
edit_users GET /users/edit(.:format) {:action=>"edit", :controller=>"users"}
GET /users(.:format) {:action=>"show", :controller=>"users"}
PUT /users(.:format) {:action=>"update", :controller=>"users"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"users"}
cependant, quand je
rails g resource users name:string
(qui ajoute automatiquement des ressources :les utilisateurs de config/routes.rb)
bundle exec rake routes
- Je obtenir
users GET /users(.:format) {:action=>"index", :controller=>"users"}
POST /users(.:format) {:action=>"create", :controller=>"users"}
new_user GET /users/new(.:format) {:action=>"new", :controller=>"users"}
edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
user GET /users/:id(.:format) {:action=>"show", :controller=>"users"}
PUT /users/:id(.:format) {:action=>"update", :controller=>"users"}
DELETE /users/:id(.:format) {:action=>"destroy", :controller=>"users"}
Donc ma question est,
quand je générer un contrôleur comment puis-je obtenir les bonnes méthodes d'aide à faire
link_to 'Détruire', exemple :method=> :supprimer
travail?
Parce qu'actuellement, il donne une erreur user_path n'est pas défini.
source d'informationauteur nurettin | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Vous devriez appeler
au lieu de
afin d'obtenir
resources :users
pour vous donner les aides que vous voulez.Ce dernier provoque des Rails de supposer que
users
est un objet singulier, et queresources :users
devrait créer ce qu'on appelle une unique ressource:http://guides.rubyonrails.org/routing.html#singular-resources
comme un résultat,
user_path
est pas défini, alors queusers_path
est défini.Lorsque vous utilisez
rails g controller
et de spécifier les noms de méthode, le générateur seules les cartes des itinéraires spécifiques vers le fichier de routes.rails g resource
suppose que vous voulez l'ensemble de la fonctionnalité de la ressource et la carteresources
.Afin de résoudre ce problème, il suffit d'aller dans votre fichier de routes et de remplacer le mappage spécifique avec les ressources d'appel.
Ce que je voulais, c'était un moyen de créer un travail (avec la bonne supprimer/afficher chemins) contrôleur pour un modèle existant (comme décrit dans la question) mais juste l'ajout de ressource": x" et de générer le contrôleur n'était pas assez.
J'ai fini par utiliser la scaffold_controller générateur. Il ne crée pas de migrations ou de modèles, mais il génère une ressource avec des points de vue et
rake paths
commande affiche les chemins corrects pour les supprimer et de montrer au travail.Vous pouvez exécuter les commandes suivantes dans la console:
Et ajouter cette ligne de code dans le fichier routes.rb: