保存结束日期

时间:2011-01-29 17:10:05

标签: mysql ruby-on-rails

我的数据库中有一个问题我有一个名为members的表,并且有两个字段start_date和end_date..from表格的人可以输入开始日期,从那里我想添加三个月的start_date给end_date < / p>

e.g

@member.end_date = params[:start_date] + 3months 

有人可以帮我这个..顺便说一句,使用Rails3 感谢

2 个答案:

答案 0 :(得分:3)

假设params[:start_date]TimeDate对象,您的示例几乎是正确的。您只需使用3.months而不是3months

@member.end_date = params[:start_date] + 3.months

顺便说一下,这个逻辑可能应该存在于模型中(你的代码看起来就像你在控制器中这样做了)......

class Member < ActiveRecord::Base

  before_save :set_end_date

  private

    def set_end_date
      self.end_date = self.start_date + 3.months
    end

end

答案 1 :(得分:1)

你的语法中只缺少一个点。

@member.end_date = params[:start_date] + 3.months

以下是irb(rails console)中的一个示例:

$ rails c
Loading development environment (Rails 3.0.3)
> start_date = Time.now
 => 2011-01-29 17:18:58 +0000 
> end_date = start_date + 3.months
 => 2011-04-29 17:18:58 +0100