2010-09-21 3 views
0

J'utilise actuellement Authlogic dans une application Web pour gérer l'authentification des utilisateurs, mais j'ai maintenant décidé de créer une API limitée qui nécessiterait l'utilisation d'un single_access_token. Ma question est, comment puis-je appliquer la migration aux utilisateurs existants?Mise à jour des utilisateurs existants avec un Authlogic single_access_token

Je pensais utiliser quelque chose comme

add_column :users, :single_access_token, :string 
User.reset_column_information 
User.find(:all) do |c| 
    c.update_attribute :single_access_token, ***** 
end 

Je ne sais pas si cela est la meilleure façon, ou quoi mettre à la place du ***** pour générer un jeton pour tous déjà enregistrés utilisateurs.

Merci

Répondre

3

Je pense que

User.all.each{ |x| x.reset_single_access_token! } 

est ce que vous cherchez

+0

Merci pour cela! Je n'étais pas très loin, mais c'est exactement ce dont j'avais besoin. À votre santé. – wastedhours

0

pourrait être plus rapide si vous avez beaucoup d'utilisateurs:

User.find_each do |user| 

    tok = Authlogic::Random.friendly_token 

    str = "UPDATE users SET single_access_token = '#{tok}' WHERE id = #{user.id}" 

    ActiveRecord::Base.connection.update_sql(str) 

end 
Questions connexes