8
votes

Créer une période d'essai pour Ruby On Rails Web App

Quelqu'un peut-il me dire la meilleure façon de mettre en œuvre une période de 30 essai pour une application Web Ruby sur Rails sur Rails, un peu comme la façon dont Basecamp de 37signaux fait?

Pour le moment, j'ai une page d'inscription à l'utilisateur qui donne ensuite à un utilisateur d'accéder à un tableau de bord affichant des informations de courant sur leurs produits / tarifs, etc.

J'aimerais que les utilisateurs puissent s'inscrire et disposer de fonctionnalités d'applications complètes qui expire après 30 jours.

merci


2 commentaires

Bonjour à tous, merci pour les réponses. En faisant un peu de recherche, je suis tombé sur lien qui contenait tout ce dont j'avais besoin. J'ai pu importer le plugin SaaS dans mon application existante et obtenir une période d'essai et un système de paiement (un peu comme 37Signals) et de fonctionner assez rapidement après quelques modifications.


Pourriez-vous partager le lien que vous avez trouvé et utilisé?


5 Réponses :


6
votes

Stockez simplement la date à laquelle le compte d'utilisateur a été créé, avec un drapeau booléen si le compte a été payé ou non.

ou utilisez un champ de date dans lequel vous définissez le dernier jour où l'utilisateur dispose de l'accès à la fonctionnalité complète (et de vous enregistrer définir cette date à 30 jours à partir de l'enregistrement).

Dans tous les cas, lisez les données lors de la connexion et d'affichage du contenu différent en fonction de celui-ci.

Ce serait ma solution; Mais je suppose qu'il pourrait y avoir quelque chose de mieux et plus facile.

Modifier Je suis généralement d'accord avec ce que @Roland a dit dans sa réponse. Le drapeau booléen peut être remplacé par une information sur le niveau du compte. Toutefois, pour que j'utilise un entier (0 signifie essais, 1 base, 2 pro, etc.) sur une étiquette de chaîne.

Vous pouvez également faire automatiquement quelque chose à des comptes qui n'ont pas été payés à une journée donnée en programmant une tâche de râteau à Cron. Par faire quelque chose à je veux dire des choses comme: invalider, supprimer, modifier le niveau à basique, etc.


0 commentaires

0
votes

Le pourquoi je m'approcherais est de définir un champ essai_started_at pour l'utilisateur et vérifiez cela chaque fois que l'utilisateur se connecte, à moins d'avoir acheté.


0 commentaires

0
votes

Quelle chagrin et quelle tente a dit, et mais au lieu d'une combinaison booléenne, une balise pour les utilisateurs: essai, base, pro etc.


0 commentaires

0
votes

Le chagrin suggère:

Utilisez un champ de date 'dans lequel vous définissez le dernier jour où l'utilisateur a l'accès à la fonctionnalité complète> (et sur l'enregistrement que vous avez défini cette date à 30 jours à partir de l'enregistrement).

Je ne republe que pour souligner que c'est la meilleure option plutôt que de stocker lorsque le procès commence, le code de vérification de l'ancien est le suivant: essai_expirs> temps.now , alors que le code pour vérifier l'essai La date de démarrage devrait être plus compliquée et rend difficile la tâche de suivre différents essais de longueur.

Vous pouvez effacer la date d'expiration lors de l'achat d'un compte, pas besoin de vérifier un champ séparé. Une sorte de niveau utilisateur est toujours une bonne idée, mais pas nécessaire au système d'essai.


0 commentaires

11
votes

Créer des rails Application pour la période d'essai X jours est assez facile.

Vous souhaitez mettre en œuvre une période d'essai de 30 jours pour vos utilisateurs, suivez:

Étape 1: Créez ces méthodes dans Application_Controller. RB comme xxx

étape 2: affiche les jours d'essai restants dans application.html.erb xxx

Étape 3: Chaque contrôleur écrit xxx

de sorte que si l'essai soit déjà expiré, il ne donnera pas accès à votre page, mais rediriger l'utilisateur à la page de message d'erreur.

Maintenant, créez un Expire le contrôleur et effectuez toute la fonction requise là-bas. Dans Expires> Page d'index affiche un message d'erreur comme "Votre période d'essai est terminée s'il vous plaît S'abonner ................." Quoi que tu aimes.

Ceci fonctionne pour moi.


2 commentaires

Suivant ce modèle, mais continue à obtenir "Méthode non définie Trial_Expired?" quand ajouté à l'utilisateurController. Des idées pourquoi le contrôleur des utilisateurs ne reconnaîtrait pas le procès_expiré? méthode?


Bonjour @Przbadu, merci pour votre réponse, une question que j'avais eue, il n'y a pas de réel besoin de rond de la valeur dans restant_days méthode, correct? Je ne peux pas penser à un cas où la différence entre deux to_dates serait float. Merci