Je pense que cela devrait être simple, mais je suis novice en ajax et en utilisant ajax dans les rails.
Si un utilisateur suit un lien vers mon site, ce lien contiendra un jeton. Au chargement de la page, je saisis ce jeton.
Je dois envoyer le jeton à une méthode de contrôleur (je pense), rechercher un utilisateur via le jeton et renvoyer ce user_id à l'appel ajax.
J'ai le jeton dans une var js. Et j'ai une méthode de contrôleur mais je suis coincé là.
Merci beaucoup pour l'aide.
Réponses:
0 pour la réponse № 1Comme vous n’avez pas au préalable l’ID utilisateur, il est plus difficile d’avoir une structure RESTful dans le contrôleur, bien que vous puissiez avoir un from_token
action dans votre UsersController
:
class UsersController < ApplicationController
#...
def from_token
user = User.find_by_token(params[:token])
respond_to do |format|
format.json { render json: {user: {id: user.id}} }
end
end
end
Et dans routes.rb:
#...
resources :users do
get "from_token" => "users#from_token"
end
Selon les données que vous souhaitez utiliser pour JavaScript, il peut être plus facile de renvoyer toutes les données utilisateur, plutôt que simplement l'ID. Dans quel cas jetez un oeil à jBuilder pour construire des objets JSON plus complexes.
En termes de JavaScript, cela dépend du framework que vous utilisez pour faire la requête ajax dans le navigateur. API de requête ajax get.
var token = "{{extracted token}}";
$.get("/users/from_token.json?token=" + token, function(data) {
var userId = data.user.id;
});