Ruby on rails 为ruby on rails web应用程序创建试用期

Ruby on rails 为ruby on rails web应用程序创建试用期,ruby-on-rails,ruby,web-applications,Ruby On Rails,Ruby,Web Applications,有谁能告诉我,为RubyonRails web应用程序实现30个试用期的最佳方法吗 目前,我有一个用户注册页面,用户可以访问显示其产品/定价等当前信息的仪表板 我希望用户能够注册,并拥有完整的应用程序功能,然后在30天后到期 感谢只需存储用户帐户创建的日期,以及是否已支付帐户的布尔标志 或者使用一个日期字段,在该字段中设置用户有权访问完整功能的最后一天(注册时,将该日期设置为注册后30天) 在任何情况下,在登录时读取数据,并根据数据显示不同的内容 这就是我的解决方案;但我想可能会有更好、更容易的

有谁能告诉我,为RubyonRails web应用程序实现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