我听说Rails的ActiveRecord/ActiveModel有一个叫做"touch"的东西.然而,我还没有找到任何描述这个功能用途的东西.

它做什么,有什么用?

推荐答案

根据API Documentation,它是一种仅用当前时间更新模型的指定时间戳的方法.为了更新updated_at字段:

product.touch

或者更新updated_atdesigned_at字段:

product.touch(:designed_at) 

现在,我以前从未使用过这种方法,但我认为在不实际更改内容的情况下,将问题(如堆栈溢出)"碰撞"到搜索查询的顶部会很有用.

Ruby-on-rails相关问答推荐

Rails文档的悲观锁定示例中的争用条件

会话控制器中的某种问题

Ruby/Rails 相当于 Python 的 sys.addAuditHook

Rails 使用多个外键创建/构建

Rails cron 与时俱进,设置环境

Postgres on Rails 致命:数据库不存在

跳过模型中的某些验证方法

Gem 更新:在从 ASCII-8BIT 到 UTF-8 到 US-ASCII 的转换中,无法将 "\xE7" 转换为 UTF-8

奇怪的406 不可接受错误

.increment vs += 1

Redis 引发需要 NOAUTH 身份验证错误,但没有设置密码

遇到在早期版本的 Rails 中使用 attr_accessible 的情况时,Rails 4 中的禁止属性错误

如何检测导致 Rake 中的弃用警告的原因

如何在 Rails 迁移中添加一些插入?

活动管理员:仅自定义新表单

在 Rails 中命名布尔列

如何翻译 ActiveRecord 模型类名称?

设计:为什么我的注销链接不起作用?

如何从 ApplicationHelper 调用 ApplicationController 方法

是否可以输出rake db:migrate产生的 SQL 更改脚本?