控制器中的添加失败

时间:2016-07-20 22:30:33

标签: 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

我不知道为什么这不起作用...... 可能存在问题,因为它是嵌套模型吗?

1 个答案:

答案 0 :(得分:3)

因为id之前没有宣布过。

这样做:

id = 0

begin
  id = id + 1
end until ...

为变量分配一个整数(在本例中为id)后,它变为Integer类型,然后允许您以这种方式递增

<强>更新

看到您对问题的修改后,问题是因为id仍为空白。

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