Created_at.1.year.from_now - Rails

Bit*_*ise 3 ruby ruby-on-rails

我需要创建一种方法,将创建日期过去一年的日期呈现到表中。我已经尝试过标题中列出的行,但没有成功。我现在有一个表格,旁边列出了“加入日期”,我希望它显示“日期已过期”。自加入之日起一年。

例子:

class Subscriber < ActiveRecord::Base
  validates :first_name, presence: true
  validates :last_name, presence: true
  validates :email, presence: true
  validates :phone_number, presence: true

  def date_joined
   created_at.strftime("%-m/%-d/%-y")
  end

  def expiration_date
   created_at.1.year.from_now
  end
end
Run Code Online (Sandbox Code Playgroud)

我应该如何格式化该expiration_date方法。date_joined 工作正常。

Зел*_*ный 5

您应该添加1.yearcreated_at时间对象:

def expiration_date
  created_at + 1.year
end
Run Code Online (Sandbox Code Playgroud)

格式化:

def expiration_date
  (created_at + 1.year).strftime("%-m/%-d/%-y")
end
Run Code Online (Sandbox Code Playgroud)

导轨控制台:

=> some_object.created_at
=> Wed, 12 Apr 2016 17:37:12 UTC +00:00
=> some_object.created_at + 1.year
=> Wed, 12 Apr 2017 17:37:12 UTC +00:00
=> (some_object.created_at + 1.year).strftime("%-m/%-d/%-y")
=> "4/12/17"
Run Code Online (Sandbox Code Playgroud)