rails 3 redirect_to passer des paramètres à une route nommée
Je ne parviens pas à trouver beaucoup d'infos sur la façon de le faire, même si il ya beaucoup de suggestions sur la manière de passer des paramètres à une redirection à l'aide de hashs comme ce redirect_to
:action => 'something', :controller => 'something'
dans mon application j'ai le texte suivant dans le fichier de routes
match 'profile' => 'User#show'
mon action show loos, comme ce
def show
@user = User.find(params[:user])
@title = @user.first_name
end
la redirection se passe dans le même utilisateur contrôleur comme ce
def register
@title = "Registration"
@user = User.new(params[:user])
if @user.save
redirect_to '/profile'
end
end
La question est dans le registre de l'action quand je redirect_to comment puis-je passer le long de la params si je peux récupérer l'utilisateur à partir de la base de données ou mieux encore ... j'ai déjà une variable utilisateur alors, comment puis-je passer le long de l'utilisateur de l'objet à la fin de l'action?
-matthieu
OriginalL'auteur mattwallace | 2010-12-14
Vous devez vous connecter pour publier un commentaire.
Si vous êtes en train de faire une redirection, les Rails seront effectivement envoyer un
302 Moved
réponse avec une URL dans le navigateur et le navigateur va envoyer une autre requête à cet URL. Vous ne pouvez donc pas de "passage à l'utilisateur de l'objet", comme en Ruby, vous ne pouvez passer des url des paramètres codés.Dans ce cas, vous auriez probablement souhaitez modifier votre routage définition:
et puis rediriger comme ceci:
OriginalL'auteur Matt
Tout d'abord, j'avais le nom de votre parcours, afin de le rendre plus facile:
Vous serait alors de redirection, comme:
Puis à tirer de l'utilisateur de la base de données:
En aparté, si vous utilisez quelque chose comme Concevoir pour l'authentification, il vous fournit une méthode current_user, et, par conséquent, vous n'aurez pas besoin de passer l'id de l'utilisateur:
OriginalL'auteur jswanner