Quel est l'équivalent de Rails pour Sinatra redirect_to
méthode? J'ai besoin de suivre un flux Post/Redirect/Get pour une soumission de formulaire tout en préservant les variables d'instance qui sont passées à ma vue. Les variables d'instance sont perdues lors de l'utilisation de la méthode redirect
.
La redirection dans Sinatra est la plus simple à utiliser.
Ainsi, le code ci-dessous peut expliquer:
require 'rubygems'
require 'sinatra'
get '/' do
redirect "http://example.com"
end
Vous pouvez également rediriger vers un autre chemin dans votre application actuelle comme celui-ci, bien que cet exemple supprime une méthode.
delete '/delete_post' do
redirect '/list_posts'
end
Un endroit très courant où cette instruction de redirection est utilisée est sous Authentification
def authorize!
redirect '/login' unless authorized?
end
Vous pouvez voir plus d'échantillons sous:
Quant à votre deuxième question, passer des variables dans des vues, c'est possible comme ceci:
get '/pizza/:id' do
# makeing lots of pizza
@foo = Foo.find(params[:id])
erb '%h1= @foo.name'
end
Le Sinatra Book devrait effacer votre question. Surtout la partie " Redirect ".
Extrait du livre:
La redirection renvoie en fait un en-tête Location au navigateur, et le navigateur fait une demande de suivi à l'emplacement indiqué. Étant donné que le navigateur effectue cette demande de suivi, vous pouvez rediriger vers n'importe quelle page, dans votre application ou un autre site entièrement.
Le flux de requêtes pendant une redirection est: Navigateur -> Serveur (rediriger vers ‘/’) -> Navigateur (requête ’/’) -> Serveur (résultat pour ’/’)