`

rails3 更新时间问题

阅读更多

rails3 更新时间问题(updated_at)

(未完)

 

ruby:1.9.2

rails:3.0.3

 

一般来说,对表进行设计时候,如果不做对创建时间与更新时间做任何处理的话,rails则会默认给你加上。用来监控表中的记录

 

创建记录

rails会把现当前的时间作为值,同时设置给created_at与updated_at

 

更新记录

如果表中的记录发生变更的话,则会更新updated_at这个时间戳高

 

实际的情况是怎么样的呢?

在调用update,save,update_attributes后,rails 会判断待修改记录中的是否有字段发生改变,

如果发生改变,则去更新这个updated_at 时间戳

 

 

如果没有发生改变,这时,并不会更新这个updated_at时间戳

 

注意,如果调用increment!或decrement!来改变计数的话,是不会更新updated_at时间戳的

 

使用touch处理表之间的更新关系

如果出现层次关系的表,子表的数据发生变化,需要更新主表的updated_at,这时如何处理

 

例如:post内容发生变化,需要更新topic表的时间updated_at时间戳

在post mode中的topic建立的belongs_to关系中,添加选项:touch =>true

 

belongs_to :topic, :touch => true

 这时,只要post调用save,update, update_attributes就会更新topic的updated_at时间。。。

 

 

以上,仅是实验中得来,具体依据尚未充足

 

 

 

 

 

分享到:
评论

相关推荐

    Rails 101 入门电子书

    #### 十、练习作业3-为Group与Post加入使用者机制 - **目标**: - 添加用户身份验证。 - **实现过程**: - 使用Devise gem。 - 实现登录/注册功能。 - 关联Group和User。 - **安全措施**: - 加入权限控制。 - ...

    rails2.3.2

    3. ActiveSupport:提供了一系列实用的工具和扩展,如时间处理、字符串操作、日历计算等,增强了 Ruby 语言的基础功能。 4. 插件和Gem:Rails 2.3.x 支持 Gem 管理系统,允许开发者通过安装和管理第三方 Gem 来扩展...

    Agile Web Development with Rails 3nd Edition Beta.pdf

    ### 敏捷Web开发与Rails 3:关键知识点解析 #### 一、Rails版本与兼容性 本书《敏捷Web开发与Rails》第三版是基于Rails 2编写的。截至本书印刷时,当前可用的Rails Gem版本为2.1。书中所包含的所有代码均已在该...

    rails本地安装包完整版

    1. **activesupport-2.1.0.gem**:ActiveSupport是Rails的一个重要库,提供了许多实用的工具和方法,如时间区处理、字符串格式化、数组和哈希操作等。它也包含了一些核心的Ruby扩展,帮助开发者编写更简洁、更具表达...

    rails2.3.8 && ruby1.8.7

    7. `activesupport-2.3.8.gem`:ActiveSupport包含了许多实用的工具类和模块,如日期和时间处理、JSON解析等,广泛用于Rails应用。 8. `actionmailer-2.3.8.gem`:ActionMailer用于发送电子邮件,是Rails中处理邮件...

    web开发之rails最新调试通过购物车代码

    5. **会话(Session)**:Rails中的会话管理允许在多个请求之间保持状态,这对于购物车尤为重要,因为用户可能需要在不同时间查看或修改购物车。 6. **数据库迁移(Database Migrations)**:Rails提供了方便的工具...

    rails api(文档)

    英文版的Rails API文档全面且实时更新,包含了最新的特性和技术趋势。 为了开始使用Rails API,首先你需要安装Rails框架,然后创建一个特定于API的项目,使用`rails new your_api --api`命令。接着,你可以按照文档...

    [Rails 常用插件简介]CRUD Generator 2

    - Edge Rails的不稳定性可能导致兼容性问题。 - 生成的代码可能需要进一步优化以满足特定项目需求。 - 不适用于复杂的业务逻辑或高度定制的场景。 总的来说,CRUD Generator 2是一个方便的开发工具,尤其适合快速...

    rails-1.0.0

    随着时间的推移,Rails不断进化,引入了更多新特性,如ActiveJob(后台任务处理),Action Cable(实时通信)等,但其核心理念始终未变,即提供一个强大而优雅的框架,让开发者更专注于创造有价值的应用。

    ruby on rails api

    10. **Scaffolding**:快速生成基本的CRUD(创建、读取、更新、删除)操作的代码,是Rails开发中的一个便捷特性。 这个CHM文件可能涵盖了以上所有内容的详细说明,包括每个类、模块的方法、参数、返回值和示例用法...

    ruby on rails 2.3.5 api html版

    8. **Scaffold**:Rails的快速开发工具,可以自动生成基本的CRUD(创建、读取、更新、删除)操作的控制器、模型、视图和路由。 9. **测试**:Rails提供了全面的测试支持,如Test::Unit、Functional测试、...

    重构你的Rails程式码

    3. **依赖项更新:** 使用工具如 `gemnasium` 来监控和管理项目依赖,及时更新过时的依赖可以减少安全风险,同时也能利用最新的改进和功能。 4. **注释密度:** 代码中的注释密度也是一个重要的指标,它反映了代码的...

    rails 部署 nginx

    在部署Rails应用时,还需要考虑性能优化,比如启用HTTP缓存,调整Nginx的连接超时时间,配置Rails应用的线程池大小,以及使用如 unicorn 或 puma 这样的多进程或多线程服务器。 7. **部署工具**: 为了自动化部署...

    rails 2.2.2 API

    Rails 2.2.2 API 是一个针对 Ruby on Rails 框架的版本 2.2.2 的接口文档,它是开发人员的重要参考资料,用于理解并有效地使用该框架...同时,随着 Rails 不断更新,开发者也需要关注新版本的特性以保持技术的先进性。

    Beginning Rails 4

    - **日期和时间格式化**:根据不同地区的习惯调整日期和时间的显示方式。 #### 第13章:部署 Rails 应用 当应用程序开发完成后,下一步就是将其部署到生产环境中。本章详细介绍了部署过程中的关键步骤。 - **选择...

    Ruby-Rails应用程序的服务器时间标头

    3. **开启服务器时间标头**:在Rails中,可以通过在`config/application.rb`或`config/environments/production.rb`等环境配置文件中添加自定义中间件来实现。例如,可以创建一个`ServerTimingMiddleware`,并在其中...

    Agile Web Development with Rails 3nd Edition Beta

    3. **Rails 2 新功能介绍**: - 深入探讨 Rails 2 引入的新功能,如 Active Record 的改进、RESTful 设计等。 - 阐释了这些新功能的实际应用案例。 4. **实践指南**: - 提供了基于 Rails 2 构建实际项目的详尽...

    Rails API

    9. **ActiveSupport**:Rails的核心库,包含了许多有用的实用工具和扩展,如时间助手、字符串处理等。 10. **测试**:Rails提供TDD(Test-Driven Development)支持,包括RSpec、Minitest等测试框架,确保代码质量...

    Ruby On Rails中文教材(PDF)

    5. **Scaffolding**:Rails的快速开发工具,能自动生成CRUD(创建、读取、更新、删除)操作的模型、控制器和视图代码,用于快速搭建基本的Web界面。 6. **erb模板**:Rails中的视图通常使用ERB(Embedded Ruby)...

    应用Rails进行REST开发

    3. **减少代码重复**:由于一个操作可以支持多种格式的响应,这减少了不必要的代码重复(DRY原则),使得控制器的实现更为简洁。 4. **面向CRUD的控制器**:控制器与模型紧密关联,每个控制器通常对应一个特定模型...

Global site tag (gtag.js) - Google Analytics