问题是这样的,在对象改变了几个属性后,调用 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-13 20:08
- 浏览 976
- 评论(1)
- 论坛回复 / 浏览 (1 / 2590)
- 查看更多
相关推荐
在yaml里面配置数据库信息,通过activerecord进行连接数据库 数据信息通过csv文档写入
在vs2008下,c#语言编写的家庭记账本程序,支持自定义收支类别,用户登录,记账,查询及各种统计报表。 特点在于使用sqlite数据库,使得程序部署...使用ActiveRecord 对象化数据库操作,大大减少了sql的重复编写量。
标题 "Ruby-Rein让ActiveRecord支持数据库约束" 暗示了一个关于Ruby开发中的一个库,名为Rein,它的目标是增强ActiveRecord的功能,使其能够更好地处理数据库约束。ActiveRecord是Ruby on Rails框架中用于对象关系...
rein, 使ActiveRecord易于使用的数据库约束 数据完整性问题是一件好事。 在数据库级别,而不是应用程序级别,约束应用程序允许的值,是确保数据保持正常的一种更加可靠的方法。然而,ActiveRecord不鼓励( 甚至允许) ...
在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...
在现代的Web应用程序中,随着数据量的增长,单个数据库可能无法满足高效处理和存储的需求。这时,数据库分片技术应运而生,它将数据分布在多个数据库服务器上,以实现负载均衡、提高性能和容错能力。Ruby-...
在"ASP源码—实现ActiveRecord数据查询更新 v1.0.zip"中,我们可以推测这是一个实现了ActiveRecord概念的ASP库或框架,允许开发者更便捷地进行数据库查询和更新操作。以下是一些关于ASP和ActiveRecord模式的核心知识...
- `Save()`:保存新对象到数据库,或更新已存在的对象。 - `Delete()`:删除数据库中的记录。 - `Find()`/`Load()`:根据主键或其他条件查询对象。 - `All()`:获取表中的所有记录。 - `First()`/`...
Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...
5. **迁移系统**: 内置了迁移系统,可以方便地进行数据库模式的更新。 #### 四、深入理解ActiveRecord 1. **模型类**: 每个模型类代表一个数据库表,模型类的实例则代表表中的记录。 2. **属性访问**: 可以直接通过...
这个"基于ASP的实现ActiveRecord数据查询更新 v1.0.zip"压缩包可能包含了一个利用ASP技术来实现ActiveRecord设计模式的示例或者框架。 ActiveRecord是面向对象编程中的一个设计模式,它将数据库表的记录映射到类的...
章鱼-用于ActiveRecord的简单数据库分片 章鱼是在ActiveRecord中进行数据库分片的更好方法。 分片允许在同一个Rails应用程序中使用多个数据库。 尽管有多个项目实现了分片(例如DbCharmer,DataFabric,MultiDb),...
它可以创建、更新、删除对象并保存到数据库。事务管理和对象状态管理都是通过Session来实现的。 4. **查询** NHibernate提供多种查询方式:HQL(Hibernate Query Language)、Criteria API、Linq-to-NHibernate等...
HairTrigger允许您以简洁,与数据库无关,Rails-y的方式创建和管理数据库触发器。 您可以在Ruby中的模型中声明触发器,然后执行一个简单的rake任务即可为您完成所有肮脏的工作。 安装 HairTrigger从Rails 5.0开始...
在 Winform 应用中,你可以利用 Castle.ActiveRecord 提供的 CRUD(创建、读取、更新、删除)操作方法,轻松地与数据库进行交互。例如: ```csharp using (var session = ActiveRecordMediator<User>....
在这个"ASP实现ActiveRecord数据查询更新 v1.0-ASP源码.zip"的压缩包中,我们可以预期包含了一些实现ActiveRecord模式的ASP源码,用于处理数据查询和更新操作。 ActiveRecord模式的核心思想是将数据库表映射为对象...
在本示例中,我们将深入探讨MyBatisPlus如何通过ActiveRecord模式实现CRUD(创建、读取、更新、删除)操作。ActiveRecord是一种设计模式,它将数据库表中的每一条记录映射为一个对象,通过这个对象可以直接进行CRUD...
ActiveRecord是Ruby on Rails框架中的一个核心组件,它实现了对象关系映射(ORM)系统,使得开发者能够以面向对象的方式处理数据库操作。在这个压缩包"ActiveRecord简单实例代码.zip"中,我们预计会找到一些使用...
深入研究Castle ActiveRecord的源代码,可以帮助我们更好地理解ORM的工作原理,掌握面向对象与数据库操作的结合方式,提升开发效率,同时也能为我们提供解决实际问题的灵感和思路。在实际项目中,结合C#的特性,灵活...
1. **Scala Activerecord**: Scala Activerecord是一个基于Scala语言的ORM库,它允许开发者用Scala的语法来定义模型类,这些模型类可以直接与数据库表进行交互。其设计理念是模仿Ruby on Rails中的ActiveRecord模式...