论坛首页 入门技术论坛

activerecord无法更新数据库的问题

浏览 2576 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-13  
问题是这样的,在对象改变了几个属性后,调用 save 方法,但是却没有更新数据库。
ruby代码如下:
@@log.debug "before save \ttm.s1=#{tm.s1}\ttm.s2=#{tm.s2}\tfs[14]=#{fs[14]}\tfs[15]=#{fs[15]}\ttm.overf=#{tm.overf}"
tm.s1 = fs[14]
tm.s2 = fs[15]
tm.overf = 1
@@log.debug "after assign \ttm.s1=#{tm.s1}\ttm.s2=#{tm.s2}\tfs[14]=#{fs[14]}\tfs[15]=#{fs[15]}\ttm.overf=#{tm.overf}"
tm.save
tm.reload
@@log.debug "after save \ttm.s1=#{tm.s1}\ttm.s2=#{tm.s2}\tfs[14]=#{fs[14]}\tfs[15]=#{fs[15]}\ttm.overf=#{tm.overf}"

tm 的 get 就没写上来了
log4r打在console上的内容如下:
------------
DEBUG : before save tm.s1=-1 tm.s2=-1 fs[14]=1 fs[15]=0 tm.overf=0
DEBUG : after assign tm.s1=1 tm.s2=0 fs[14]=1 fs[15]=0 tm.overf=1
DEBUG : after save tm.s1=-1 tm.s2=-1 fs[14]=1 fs[15]=0 tm.overf=0
------------
在log/development.log里有这样的记录:
-------------
  [4;36;1mSQL (0.000000)[0m   [0;1mBEGIN[0m
  [4;35;1mSQL (0.000000)[0m   [0mCOMMIT[0m
-------------
这个问题让我头疼了几天了,一直没明白。。。
尝试改用
ActiveRecord::Base.connection.execute

来做,有带来了其他问题:他把我设计的一个允许NULL的datetime字段自动填充当前时间了。。。
值得一提的是,在另外一个project下,并没有出现上述问题。

请各位赐教,谢谢了。

其他描述

数据库 mysql

ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

rails -v
Rails 2.1.0

gem -v
1.0.1
   发表时间:2008-09-15  
可以锁帖了,经朋友指点,将 partial_updates 置为 false 后,一切回归正常。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics