2011-11-15 2 views
1

Je dois faire timeout_in comme valeur dynamique comme ci-dessous, mais ici self n'est pas une instance de modèle User. quelqu'un peut-il avoir une idée de comment je peux utiliser cette condition.concevoir session time_out

legs: database_authenticatable,: enregistrable, : recouvrable: rememberable,: traçable,: validable, : token_authenticatable,: confirmable,: verrouillable: timeoutable,: omniauthable,: timeout_in => (self.email.nil ? 111.minutes: 112.minutes)

Répondre

0

Je ne sais pas si vous pouvez le faire de cette façon, puisque vous êtes sur une portée de classe. Pour faire ce que vous voulez, définissez une méthode appelée timeout_in qui implémente cette logique. Parce qu'il a this method Devise essaie de charger timeout_in à partir d'une méthode d'instance, et après cela, il essaie de l'obtenir à partir de la méthode de classe.

EDIT: enlevé la solution de patch de singe ajoutée une meilleure.

EDIT2: Amélioration de la réponse.

+0

Alors est pas moyen d'atteindre mon objectif (ensemble de la valeur timeout_in selon le type d'utilisateur.)? – Neelesh

+0

Oui, il y a un moyen. Peut-être que ce n'était pas clair sur ma réponse, alors j'ai amélioré la réponse. –

+0

"après cela, il essaie de l'obtenir à partir de la méthode de classe." veuillez le pardonner. Pourriez-vous s'il vous plaît me donner la ligne de code que vous demandez. Comme je l'ai fait de manière différente sans utiliser le dispositif timeout_in: http://snippets.dzone.com/posts/show/7400 – Neelesh

2

Cette fonctionnalité est sur Devise master et devrait être publiée prochainement sur une nouvelle version de Devise. Vous pouvez diriger votre Gemfile vers Devise git repository et commencer à l'utiliser dès maintenant.

https://github.com/plataformatec/devise/wiki/How-To:-Add-timeout_in-value-dynamically https://github.com/plataformatec/devise/pull/1462

+0

Nice..J'essaierai – Neelesh

+1

J'ai publié version Devise 1.5.2 avec cette fonction Vérifiez si cela fonctionne –

+0

Ok Merci @Rodrigo .Je vérifie ceci .. – Neelesh