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? P>
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. P>
J'aimerais que les utilisateurs puissent s'inscrire et disposer de fonctionnalités d'applications complètes qui expire après 30 jours. P>
merci p>
5 Réponses :
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. P>
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). P>
Dans tous les cas, lisez les données lors de la connexion et d'affichage du contenu différent en fonction de celui-ci. P>
Ce serait ma solution; Mais je suppose qu'il pourrait y avoir quelque chose de mieux et plus facile. P>
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 à em> je veux dire des choses comme: invalider, supprimer, modifier le niveau à basique, etc. p>
Le pourquoi je m'approcherais est de définir un champ essai_started_at code> pour l'utilisateur et vérifiez cela chaque fois que l'utilisateur se connecte, à moins d'avoir acheté. P>
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. p>
Le chagrin suggère: p>
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). P> blockQuote>
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 code>, 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. p>
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. P>
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: P>
Étape 1: Créez ces méthodes dans Application_Controller. RB comme p> étape 2: affiche les jours d'essai restants dans application.html.erb p> Étape 3: Chaque contrôleur écrit p> 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. P> Maintenant, créez un Expire le contrôleur B> 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. P> Ceci fonctionne pour moi. p> p>
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 code> méthode, correct? Je ne peux pas penser à un cas où la différence entre deux
to_dates code> serait float. Merci
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é?