Rails: Itinéraire personnalisé d'action du contrôleur
J'ai vraiment du mal à comprendre les itinéraires et j'espère que quelqu'un pourra m'aider.
Voici mon custom contrôleur
class SettingsController < ApplicationController
before_filter :authenticate_user!
def edit
@user = current_user
end
def update
@user = User.find(current_user.id)
if @user.update_attributes(params[:user])
# Sign in the user bypassing validation in case his password changed
sign_in @user, :bypass => true
redirect_to root_path
else
render "edit"
end
end
end
et j'ai le fichier/paramètres /modifier.html.erb et mon lien
<li><%= link_to('Settings', edit_settings_path) %></li>
La route
get "settings/edit"
ne fonctionne pas pour cela, parce que, puis-je obtenir
undefined local variable or method `edit_settings_path' for #<#<Class:0x00000001814ad8>:0x00000002b40a80>
Quelle route dois-je donner? Je ne peux pas le comprendre. Si j'ai mis "/paramètres/modifier" au lieu d'un chemin, il bousille dès que je suis sur une autre page de ressources parce que le nom de la ressource est mis en AVANT que les paramètres/modifier
Thx
d'abord nous dire quelle voie avez-vous essayé
édité ma question
édité ma question
OriginalL'auteur Mexxer | 2012-06-17
Vous devez vous connecter pour publier un commentaire.
Qui suit devrait faire:
Si vous utilisez
/settings/edit
directement en lien, vous ne devriez pas avoir de problème avec d'autres nom de la ressource d'être ajouté dans le chemin d'accès. Toutefois, sans le slash, c'est à diresettings/edit
il pourrait avoir ce problème.Pourquoi
edit_settings_path
ne fonctionne pas peut-être parce que vous n'avez pas à déclarer une route nommée. Vous devez utiliser:as
option pour définir la façon dont vous allez générer ce chemin de l'url.OriginalL'auteur rubish
Si vous souhaitez définir explicitement la route, vous pouvez utiliser quelque chose comme
Cette déclaration précise que lorsqu'une demande est reçue pour un réglage/modifier, appelez le SettingsController#modifier la méthode, et que les opinions peuvent faire référence à ce lien à l'aide de 'edit_settings_path'.
Prendre le temps de lire le guide Rails sur le routage. Il explique de routage, mieux que toute autre référence.
Aussi garder à l'esprit la
rake routes
tâche, qui répertorie les détails de tous les itinéraires définis dans votre application.OriginalL'auteur Dave Isaacs
Modifier votre itinéraire pour
Et il sera probablement juste de travail.
OriginalL'auteur Scott Schulthess