我正在尝试更新我的rails应用程序中的一个对象,并且更改只是不坚持.没有错误,通过调试器只是表明它认为一切都在更新.
无论如何,这是有问题的代码......
qm = QuestionMembership.find(:first, :conditions => ["question_id = ? AND form_id = ?", q_id, form_id]) qm.position = x qm.save
为了便于参考,QuestionMembership有question_id,form_id和position字段.所有都是整数,没有数据库约束.
这基本上是我在表单和问题之间的连接表.
单步执行代码,qm获取一个有效对象,对象的位置确实变为x的值,save保存返回'true'.
但是,在退出方法后,db中的对象不会更改.
我错过了什么?
您可能找不到您认为自己的对象.一些在irb中进行的实验可能具有启发性.
另外,作为一般规则,只更改一个属性时,最好编写
qm.update_attribute(:position, x)
而不是设置和保存.然后,Rails将仅更新该列而不是整行.而且您还可以获得正在清理的数据的好处.