有没有办法避免自动更新 Rails 时间戳字段?

2024-06-19

如果您有数据库列created_at and updated_at当您创建和更新模型对象时,Rails 将自动设置这些值。有没有办法在不接触这些列的情况下保存模型?

我正在引入一些旧数据,我想根据(不同名称的)旧数据字段中的相应值设置这些值。我发现当我在模型上设置它们然后保存模型时,Rails 似乎会覆盖传入的值。

当然,我可以以不同的方式命名 Rails 模型列来防止出现这种情况,但在导入数据后,我希望 Rails 执行自动时间戳操作。


在迁移或 rake 任务中(或在新的数据库种子 http://github.com/rails/rails/commit/4932f7b38f72104819022abca0c952ba6f9888cb如果您位于边缘导轨上):

ActiveRecord::Base.record_timestamps = false
begin
  run_the_code_that_imports_the_data
ensure
  ActiveRecord::Base.record_timestamps = true  # don't forget to enable it again!
end

您可以安全地设置created_at and updated_at手动,Rails 不会抱怨。

笔记: 这也适用于个别模型,例如User.record_timestamps = false

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法避免自动更新 Rails 时间戳字段? 的相关文章

随机推荐

  • 使用 for 循环读取文件时跳过行

    我试图找出一种方法 如果第一行中的条件为真 则跳过文件中的接下来两行 有什么好的方法可以做到这一点吗 这是我到目前为止所拥有的 def main file open r C Users test Desktop test2 txt r ct
  • 工作天蓝色日志记录设置

    我尝试设置跟踪日志记录有一段时间了 但就是无法让它正常工作 关于这个主题有这么多错误 过时的文章并没有帮助 但请有人给我一个良好且实用的设置 用于 Azure 1 6 的跟踪日志记录和查看 我想要做的就是能够从我的应用程序捕获和查看跟踪消息
  • 在 Primefaces 中以编程方式创建命令按钮

    我正在尝试创建一个带有输入文本和命令按钮的动态表单 一切正常 但是当我单击命令按钮时 永远不会调用操作侦听器 请提出我做错了什么或者这是否是 PF 或 Mojarra 的错误 代码如下 panel new Panel panel setHe
  • 如果 free() 知道我的数组的长度,为什么我不能在自己的代码中请求它?

    我知道将动态分配的数组的长度传递给操作它们的函数是一个常见的约定 void initializeAndFree int anArray size t length int main size t arrayLength 0 scanf d
  • catcomplete 的文档

    我只是想找到 catcomplete 的文档 我需要如何使用 renderItem 的手册 我找到了这个http jqueryui com autocomplete categories http jqueryui com autocomp
  • 从视频生成缩略图 - ios7

    我用这个作为参考 从视频 URL 或 iPhone SDK 中的数据获取缩略图 https stackoverflow com a 6027285 1145339 该方法使用 MPMoviePlayerController 类而不是 AVF
  • TFS 构建代理在 Nuget Restore 上失败:.Net Core + VS 2017 + 私有 TFS Feed

    我有 一个 NET Core 应用程序 针对 VS 2017 进行了修改并使用 TFS Feed 当它在VS 2015 NuGet restore工作正常 现在使用VS 2017 NuGet restore它不起作用返回Failed to
  • 如果可空类型为空,如何运行代码块?

    在 Kotlin 中 如果对象不为 null 我可以运行代码 如下所示 data let execute this block if not null 但是如果对象为空 我该如何执行代码块呢 您可以使用elvis操作员 https kotl
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • PHP-将字符串转换为unicode

    我在做这个工作 source mb convert encoding test unicode utf 8 source unpack C source var dump source return array size 8 1 gt in
  • 如何实现右边缘倾斜的 div? [复制]

    这个问题在这里已经有答案了 我几天来一直在寻找使 div 的右边缘倾斜 45 度的代码 这是我特别想要得到的图像示例 似乎有很多 倾斜边缘 div 的示例 但我找不到任何具有特定右侧倾斜的示例 我花了很多时间试图改变其他人的代码 但结果却一
  • xsl:character-map 来替换特殊字符

    给定一个值为
  • 输入类型 = AngularJS 中的数字验证

    我正在尝试验证 lt input type number gt 通过使用输入 数字 AngularJS 模块 ng 的指令 当使用数字类型的输入时 最大 或最小 属性设置为数字 例如
  • Express Mongoose DB.once('open')无法执行回调函数

    exports c 39 function req res var mongoose require mongoose mongoose createConnection mongodb localhost cj var db mongoo
  • 编译错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 string cipherData byte cipherbytes byte plainbytes byte plainbyte
  • LightGBM:继续训练模型

    我正在使用交叉验证来训练模型 如下所示 classifier lgb Booster params params train set lgb train set result lgb cv init model classifier par
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • 高效秒表

    您好 我正在用 javascript 编写一个秒表实用程序 我有一个关于效率和开销的问题 我考虑过两种制作秒表的方法 1 存储开始日期并不断测量自该日期以来经过的毫秒数 2 创建一个整数并按设定的时间间隔递增其值 我想知道哪个最有效 另外
  • 我如何在 viewDidLoad 中执行 UIView animateWithDuration ? IOS 7

    我在 viewDidAppear 中尝试这个 但我有一秒钟的延迟 我能做什么 在 viewDidLoad 中工作 void viewDidAppear BOOL animated fullRotation CABasicAnimation
  • 有没有办法避免自动更新 Rails 时间戳字段?

    如果您有数据库列created at and updated at当您创建和更新模型对象时 Rails 将自动设置这些值 有没有办法在不接触这些列的情况下保存模型 我正在引入一些旧数据 我想根据 不同名称的 旧数据字段中的相应值设置这些值