在rails中设置现有记录ID时如何防止覆盖对象

时间:2013-11-24 10:04:48

标签: ruby-on-rails

有一天,我试图在rails console中修复一些数据。

    Class Project
      belongs_to :user
    end

    Class User
      has_many :projects        
    end

代码很简单,我的意思是在rails控制台中将项目与一个用户联系起来:

    user = User.find 31
    project = Project.find 99
    project.user_id = user.id
    project.save

然而,我犯了一个错误:

    user = User.find 31
    project = Project.find 99
    project.id = user.id #!!!!!! I used #id instead of #user_id
    project.save

因为Project有一个id == 31的记录,所以这个动作相当于id == 31的更新项目。

有没有办法防止出现这种错误错误?

1 个答案:

答案 0 :(得分:0)

如果您需要/想要在rails控制台中进行实验而不会对数据产生任何永久性影响,您可以使用

调用它
rails console --sandbox

退出控制台后,所有更改都将回滚。