我试图在我的rails应用程序中更新我的一个对象,但这些更改无法坚持。没有任何错误,使用调试器只会显示它认为一切都在更新。
不管怎样,这里有个问题…

  qm = QuestionMembership.find(:first, :conditions => ["question_id = ? AND form_id = ?", q_id, form_id])
  qm.position = x
  qm.save

为了便于参考,questionmembership有question id、form和position字段。所有这些都是整数,并且没有db约束。
这基本上就是我在表单和问题之间的连接表。
单步执行代码,qm得到一个有效的对象,对象的位置被更改为x的值,save返回“true”。
但是,在方法退出后,db中的对象将保持不变。
我错过了什么?

最佳答案

你可能找不到你认为你是的东西。在irb中的一些实验可能会有启发性。
另外,一般来说,当只更改一个属性时,最好编写

qm.update_attribute(:position, x)

而不是设置和保存。然后rails将只更新该列而不是整个行。您还可以从数据清理中获益。

08-28 04:20