Ruby on rails 为ruby on rails web应用程序创建试用期
有谁能告诉我,为RubyonRails web应用程序实现30个试用期的最佳方法吗 目前,我有一个用户注册页面,用户可以访问显示其产品/定价等当前信息的仪表板 我希望用户能够注册,并拥有完整的应用程序功能,然后在30天后到期Ruby on rails 为ruby on rails web应用程序创建试用期,ruby-on-rails,ruby,web-applications,Ruby On Rails,Ruby,Web Applications,有谁能告诉我,为RubyonRails web应用程序实现30个试用期的最佳方法吗 目前,我有一个用户注册页面,用户可以访问显示其产品/定价等当前信息的仪表板 我希望用户能够注册,并拥有完整的应用程序功能,然后在30天后到期 感谢只需存储用户帐户创建的日期,以及是否已支付帐户的布尔标志 或者使用一个日期字段,在该字段中设置用户有权访问完整功能的最后一天(注册时,将该日期设置为注册后30天) 在任何情况下,在登录时读取数据,并根据数据显示不同的内容 这就是我的解决方案;但我想可能会有更好、更容易的
感谢只需存储用户帐户创建的日期,以及是否已支付帐户的布尔标志 或者使用一个日期字段,在该字段中设置用户有权访问完整功能的最后一天(注册时,将该日期设置为注册后30天) 在任何情况下,在登录时读取数据,并根据数据显示不同的内容 这就是我的解决方案;但我想可能会有更好、更容易的办法 编辑我大体上同意@Roland在回答中所说的话。布尔标志可以替换为关于帐户级别的信息,但是为此,我会在字符串标记上使用整数(0表示试用、1基本、2专业等)
通过在cron中安排rake任务,您还可以自动对在给定日期尚未支付的帐户执行某些操作。我所说的“做点什么”是指:无效、删除、将级别更改为基本等。我的方法是为用户在字段中设置一个
trial\u start\u,并在用户每次登录时检查此项,除非用户已经购买。悲伤和蚂蚁所说的,但不要使用布尔标记:trial,basic,专业等正如悲伤所暗示的:
使用“日期”字段,在该字段中设置用户有权访问完整功能的最后一天>(注册时,将该日期设置为注册后30天)
我只是想强调,这是一个更好的选择,而不是在试验开始时存储,检查前者的代码是:trial\u expiration>Time。现在
,而检查试验开始日期的代码必须更加复杂,并且很难适应不同长度的试验
您可以在他们购买帐户时清除到期日期,无需检查单独的字段。某种用户级别仍然是一个好主意,但对试用系统来说不是必需的。创建x天试用期的Rails应用程序非常简单
您希望为您的用户实施30天试用期,然后执行以下操作:
步骤1:在应用程序_controller.rb中创建这些方法
# application_controller.rb
class ApplicationController < ActionController::Base
# make expire_on method available for all the controllers
helper :all
helper :remaining_days
# find the remaining trial days for this user
def remaining_days
((current_user.created_at + 30.days).to_date - Date.today).round
end
def trial_expired?
# find current_user who is login. If you are using devise simply current_user will works
# now that you have remaining_days, check whether trial period is already completed
if remaining_days <= 0
redirect_to expires_path
end
end
end
#应用程序_controller.rb
类ApplicationController
这对我很有用。大家好,谢谢回答。在做一点研究的过程中,我偶然发现其中包含了我所需要的一切。我可以将SaaS插件导入到我现有的应用程序中,经过一些调整后,试用期和支付系统(很像37signals)可以很快启动并运行。你能分享你找到并使用的链接吗?遵循这种模式,但在添加到UsersController时,会继续得到“undefined method试用版过期了吗?”。你知道为什么用户控制器不能识别试用版过期了吗?方法?您好@przbadu,谢谢您的回答,我有一个问题,没有必要在剩余天数中对值进行四舍五入,对吗?想不出两个截止日期之间的差异是浮动的。谢谢
# application.html.erb
<html>
<head></head>
<body>
<span style="color:red"> Your trial period will expire on <%= remaining_days %></span> Days. Suscribe
</body>
</html>
class YourController < ApplicationController
before_filter trial_expired?
end