【发布时间】:2013-08-27 00:49:16
【问题描述】:
如果我在用户控制器中创建一个用户的实例变量,然后尝试添加到字段数组,我可以看到它已经添加,但是当我去保存时,它没有保存
@instructor = User.find(current_user.id)
@instructor.clients = @instructor.clients << User.last.id
@instructor.save
然后,当我转到 Pry 并使用我在 Pry 中创建的实例变量执行相同的操作时,它确实保存了。为什么会这样,我怎样才能让它在控制器中工作?
数组字段是一个 postgres 数值数组。
【问题讨论】:
-
定义“不保存”。你有错误吗?
save是否返回false?记录只是没有出现在数据库中吗?你确定你完全只运行这三行吗? -
不是您问题的答案,但您可以使用
@instructor.clients << User.last_id。分配 (@instructor.clients = @instructor.clients << User.last_id) 是多余的。 -
没有错误,它返回true。事实上,当我在窥探时,我尝试从控制器中保存实例变量,它保存为尝试,但实际上并没有保存记录。我在 pry 中对实例变量进行相同的操作,它保存 true 并保存记录
-
你试过括号吗,比如 (@instructor.clients
-
是的,我在控制器中尝试了括号,无济于事
标签: ruby-on-rails ruby arrays rails-activerecord pry