Rails 4:如何基于原始应用程序创建免费试用版

时间:2017-01-22 23:00:53

标签: ruby-on-rails ruby-on-rails-4

我有一个使用Rails 4的Web应用程序,您必须登录才能使用它。现在我想要这个应用程序的演示版。通过演示版我的意思是一个版本,它具有原始应用程序的所有功能,但没有登录。并且所有演示数据应该(并且可以简单地)被不时删除(自动或手动)。

启动并运行原始应用程序后,我想以最少的努力实现演示版本。理想情况下,我可以使用大多数原始代码而无需任何更改。但另一方面,原始代码的更改将在演示版中提供,无需任何额外工作。

我的第一个想法是在缓存/会话中实现演示版本,因此如果会话过期,数据也会被删除。由于ActiveRecord在原始应用程序中的深度集成,我取消了这个想法。我将不得不重新编写所有的演示类和/或构建一些抽象的父类等等。

第二个想法是简单地使用原始应用程序,但是为每个模拟帐户添加一个标志,以便它们可以从所有常规帐户中删除。我对这个想法犹豫不决,因为我害怕在评估应用数据时,用演示数据炸毁我的数据库(即我用于原始应用的表格),从而降低性能,降低错误解释的成本/风险(例如,如何昨天创建的许多帐户。)

您是否有任何想法如何以优雅的方式实现这样的演示版本? 欢迎智能方法!

2 个答案:

答案 0 :(得分:1)

您可以在ApplicationController中拥有一个Guest用户帐户和一个before操作,用于检查当前应用程序是否处于演示模式(可通过custom config指定)并自动登录用户。

您可以使用cron作业删除演示数据。 Whenever是管理ruby中的cron作业的一个很好的解决方案。

答案 1 :(得分:0)

用于自动伪造数据创建使用时和faker宝石。 Faker将生成虚假数据。每当为cron工作。在每个演示会话之后,它将清除模拟数据。

采取以下观点:session,cron,假种子数据