`
liltos
  • 浏览: 7658 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

activerecord无法更新数据库的问题

    博客分类:
  • RoR
阅读更多
问题是这样的,在对象改变了几个属性后,调用 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
分享到:
评论
1 楼 liltos 2008-09-15  
可以锁帖了,经朋友指点,将 partial_updates 置为 false 后,一切回归正常。

相关推荐

    在yaml里面配置数据库信息,通过activerecord进行连接数据库

    在yaml里面配置数据库信息,通过activerecord进行连接数据库 数据信息通过csv文档写入

    家庭记账本(sqlite数据库+ActiveRecord对象化数据库操作)

    在vs2008下,c#语言编写的家庭记账本程序,支持自定义收支类别,用户登录,记账,查询及各种统计报表。 特点在于使用sqlite数据库,使得程序部署...使用ActiveRecord 对象化数据库操作,大大减少了sql的重复编写量。

    Ruby-Rein让ActiveRecord支持数据库约束

    标题 "Ruby-Rein让ActiveRecord支持数据库约束" 暗示了一个关于Ruby开发中的一个库,名为Rein,它的目标是增强ActiveRecord的功能,使其能够更好地处理数据库约束。ActiveRecord是Ruby on Rails框架中用于对象关系...

    rein, 使ActiveRecord易于使用的数据库约束.zip

    rein, 使ActiveRecord易于使用的数据库约束 数据完整性问题是一件好事。 在数据库级别,而不是应用程序级别,约束应用程序允许的值,是确保数据保持正常的一种更加可靠的方法。然而,ActiveRecord不鼓励( 甚至允许) ...

    ActiveRecord简单实例_activerecord.zip

    在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...

    Ruby-ActiveRecordTurntable是一个数据库分片的ActiveRecord扩展

    在现代的Web应用程序中,随着数据量的增长,单个数据库可能无法满足高效处理和存储的需求。这时,数据库分片技术应运而生,它将数据分布在多个数据库服务器上,以实现负载均衡、提高性能和容错能力。Ruby-...

    ASP源码—实现ActiveRecord数据查询更新 v1.0.zip

    在"ASP源码—实现ActiveRecord数据查询更新 v1.0.zip"中,我们可以推测这是一个实现了ActiveRecord概念的ASP库或框架,允许开发者更便捷地进行数据库查询和更新操作。以下是一些关于ASP和ActiveRecord模式的核心知识...

    简单Castle.ActiveRecord.Generator

    Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    5. **迁移系统**: 内置了迁移系统,可以方便地进行数据库模式的更新。 #### 四、深入理解ActiveRecord 1. **模型类**: 每个模型类代表一个数据库表,模型类的实例则代表表中的记录。 2. **属性访问**: 可以直接通过...

    基于ASP的实现ActiveRecord数据查询更新 v1.0.zip

    这个"基于ASP的实现ActiveRecord数据查询更新 v1.0.zip"压缩包可能包含了一个利用ASP技术来实现ActiveRecord设计模式的示例或者框架。 ActiveRecord是面向对象编程中的一个设计模式,它将数据库表的记录映射到类的...

    章鱼:ActiveRecord的数据库分片

    章鱼-用于ActiveRecord的简单数据库分片 章鱼是在ActiveRecord中进行数据库分片的更好方法。 分片允许在同一个Rails应用程序中使用多个数据库。 尽管有多个项目实现了分片(例如DbCharmer,DataFabric,MultiDb),...

    NHibernate中文教程+activerecord

    它可以创建、更新、删除对象并保存到数据库。事务管理和对象状态管理都是通过Session来实现的。 4. **查询** NHibernate提供多种查询方式:HQL(Hibernate Query Language)、Criteria API、Linq-to-NHibernate等...

    hair_trigger:ActiveRecord的快乐数据库触发器

    HairTrigger允许您以简洁,与数据库无关,Rails-y的方式创建和管理数据库触发器。 您可以在Ruby中的模型中声明触发器,然后执行一个简单的rake任务即可为您完成所有肮脏的工作。 安装 HairTrigger从Rails 5.0开始...

    C# Castle.ActiveRecord CS源码示例教程.zip

    在 Winform 应用中,你可以利用 Castle.ActiveRecord 提供的 CRUD(创建、读取、更新、删除)操作方法,轻松地与数据库进行交互。例如: ```csharp using (var session = ActiveRecordMediator<User>....

    ASP实现ActiveRecord数据查询更新 v1.0-ASP源码.zip

    在这个"ASP实现ActiveRecord数据查询更新 v1.0-ASP源码.zip"的压缩包中,我们可以预期包含了一些实现ActiveRecord模式的ASP源码,用于处理数据查询和更新操作。 ActiveRecord模式的核心思想是将数据库表映射为对象...

    Castle ActiveRecord快速入门指南、ActiveRecord帮助文档

    - `Save()`:保存新对象到数据库,或更新已存在的对象。 - `Delete()`:删除数据库中的记录。 - `Find()`/`Load()`:根据主键或其他条件查询对象。 - `All()`:获取表中的所有记录。 - `First()`/`...

    MyBatisPlus的ActiveRecord实现CRUD示例代码

    在本示例中,我们将深入探讨MyBatisPlus如何通过ActiveRecord模式实现CRUD(创建、读取、更新、删除)操作。ActiveRecord是一种设计模式,它将数据库表中的每一条记录映射为一个对象,通过这个对象可以直接进行CRUD...

    ActiveRecord简单实例代码.zip

    ActiveRecord是Ruby on Rails框架中的一个核心组件,它实现了对象关系映射(ORM)系统,使得开发者能够以面向对象的方式处理数据库操作。在这个压缩包"ActiveRecord简单实例代码.zip"中,我们预计会找到一些使用...

    castle ActiveRecord 源代码

    深入研究Castle ActiveRecord的源代码,可以帮助我们更好地理解ORM的工作原理,掌握面向对象与数据库操作的结合方式,提升开发效率,同时也能为我们提供解决实际问题的灵感和思路。在实际项目中,结合C#的特性,灵活...

    scala-activerecord-specs_2.9.2-0.2.3.zip

    1. **Scala Activerecord**: Scala Activerecord是一个基于Scala语言的ORM库,它允许开发者用Scala的语法来定义模型类,这些模型类可以直接与数据库表进行交互。其设计理念是模仿Ruby on Rails中的ActiveRecord模式...

Global site tag (gtag.js) - Google Analytics