comment générer AuthenticityToken sur les rails
- Je construire la balise form par moi-même et quand je poste le formulaire au serveur il me donner un InvalidAuthenticityToken
d'erreur, donc je veux savoir comment faire pour l'ajouter dans mon propre dans la situation actuelle:
<form accept-charset="UTF-8" action="/crops/update" method="post">
<input id="crop_x" name="crop_x" size="30" type="text" /><br />
<input id="crop_y" name="crop_y" size="30" type="text" /><br />
<input id="crop_w" name="crop_w" size="30" type="text" /><br />
<input id="crop_h" name="crop_h" size="30" type="text" /><br />
<input id="crop" name="crop" type="submit" value="Crop!" />
</form>
Réponse d'erreur est:
ActionController::InvalidAuthenticityToken in CropsController#update
ActionController::InvalidAuthenticityToken
Rails.root: /home/mlzboy/my/crop2
Application Trace | Framework Trace | Full Trace
Vous devez vous connecter pour publier un commentaire.
Il y a une aide de vue appelé
form_authenticity_token
qui retourne la session en cours de l'authenticité jeton.De votre point de vue.html.erb:
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
Cette réponse est d'abord pour rails en forme de jeton de balise dans Google afin de le garder plus simple pour les futurs googler générations: il suffit d'utiliser
token_tag
, c'est une aide définis dansActionView::Helpers::UrlHelper
qui renvoie caché entrée avecform_authenticity_token
comme valeur par défaut.Pour générer le jeton, vous devez utiliser la méthode:
form_authenticity_token
comme il a été souligné par @flitzwald. Depuis qu'il est rediced dans un active du contrôleur de préoccupation, vous devez inclure le module dans un contrôleur de expclicitly avant de l'utiliser comme suit:C'est ce que j'ai fait et cela a fonctionné: