Je suis relativement nouveau à ruby sur rails, donc cette question pourrait être facile. Rails fait beaucoup de magie et je ne sais pas trop où chercher de telles choses, parce que je ne sais pas quelle partie du cadre est à blâmer.map.resource et la convention de nommage pour singleton
J'ai essentiellement fait le authlogic_example et tripoté avec le code après. Mon routes.rb ressemble à ceci
map.root :controller => "user_session", :action => "new" # optional, this just sets the root route
map.resources :users
map.resource :user_session
Comme vous pouvez le voir, j'ai un contrôleur appelé user_session. user_session a trois actions nouveau, créer et détruire. Je peux atteindre les contrôleurs à
localhost:3000/user_sessions/[new,destroy,create].
Je peux aussi atteindre la nouvelle action à
localhost:3000/user_session/new
pour créer ou détruire j'obtiens une erreur de routage ici. Selon le documentation le premier cas devrait être le standard: "Un nom singulier est donné à map.resource Le nom de contrôleur par défaut est toujours pris du nom pluriel."
Mon problème est maintenant que link_to ne prend singulier du nom du contrôleur, où je ne peux atteindre de nouveaux, mais pas détruire
<%= link_to "singular", :controller=>"user_session", :action=>"destroy" %>
#=> http://localhost:3000/user_session/destroy
<%= link_to "plural", :controller=>"user_sessions", :action=>"destroy" %>
#=> http://localhost:3000/user_session
C'est assez confus et n'est pas encore à ce que je pensais, mais provoque aussi des problèmes: je ne peux pas
redirect_to :controller=>"user_sessions", :action=>"destroy"
parce que je redirigés vers
http://localhost:3000/user_session
Comme je l'ai déjà mentionné, je suis assez nouveau sur les rails, donc je ne pense pas encore à la bonne façon de penser. Pouvez-vous me montrer quelque chose qui décrit ce comportement? Comment pourrais-je résoudre ce problème?
Works. Merci. ;-) – sebastiangeiger