Ruby on rails 控制器中的添加失败

Ruby on rails 控制器中的添加失败,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我在rails控制器的创建操作中得到了一个循环,如下所示: def create @day = current_user.days.build(day_params) id = @day.tasks.first.id begin id = id + 1 end until id = @day.tasks.id @day.save ... end 当代码达到id=id+1时失败,我得到错误: nil:NilClass的未定义方法“+” 我不知道为什么这不起作用。。

我在rails控制器的创建操作中得到了一个循环,如下所示:

def create
  @day = current_user.days.build(day_params)
  id = @day.tasks.first.id
  begin
    id = id + 1
  end until id = @day.tasks.id
  @day.save
  ...
end
当代码达到
id=id+1
时失败,我得到错误:

nil:NilClass的未定义方法“+”

我不知道为什么这不起作用。。。
是否会因为它是嵌套模型而出现问题?

这是因为以前没有声明
id

这样做:

id = 0

begin
  id = id + 1
end until ...
将整数分配给变量(在本例中为
id
)后,它将成为
整数
类型,然后允许以这种方式递增

更新

查看您对问题的编辑后,问题是因为
id
仍然为空


记录的
id
在您实际创建记录之前不会被分配。使用
build
将不会生成ID,因为它尚未添加到数据库中。

当然,我以前声明过,sry我在我的post@Max你是说,尽管已经声明了,但你仍然看到了这个
nil:NilClass
问题?@MarsAtomic是的,是这样的,我再次确认声明是正确的working@Max好的,那么我们需要看看实际的代码。您在哪里以及如何声明ID?@Max我已更新我的答案以反映您更新的问题