在Rail 4中增加一年的日期。未定义的方法`+'为零:NilClass

时间:2014-03-12 13:07:27

标签: ruby-on-rails time increment

我需要在变量中存储日期:created_date + 1年。变量名为decision_at,为date类型。我在我的控制器中写了这段代码:

def create
  @post = current_user.posts.new(post_params)
  @post.statut = 1 
  @post.decided_at = @post.created_at + 1.year // here is the problem
  if @post.save
    redirect_to @post
  else
    render 'new'
  end
end

返回:undefined method '+' for nil:NilClass

如何修复?

2 个答案:

答案 0 :(得分:3)

您在控制器中构建新帖子 - 但未保存,因此created_at尚未设置。

我不确定你为什么要添加一年,但我可以建议在尝试更新之前保存它,或者可能只是将其设置为当前时间+ 1年。

答案 1 :(得分:0)

每当调用一个新方法时,它将初始化为nil。

尝试Time.current + 1.year