我有一个图片模型,其中包含一个视图计数变量(整数).

要做到这一点,两者之间的区别是什么

   @picture.view_count += 1
   @picture.save

   @picture.increment(:view_count, 1)

如果我使用增量,也是.有必要吗?

推荐答案

increment的来源如下所示,如果为nil,它会将属性初始化为零,并添加作为by传递的值(默认值为1),但它不保存,因此仍然需要.save.

def increment(attribute, by = 1)
  self[attribute] ||= 0
  self[attribute] += by
  self
end

Ruby-on-rails相关问答推荐

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

我可以向 erb 变量插值添加一个类吗?

如何在哪里查询 Rails 模型中定义的方法

Rails 模型 - 以 ID 作为自定义列的自定义主键

PostgreSQL 无间隙序列

有没有办法在 Rails 3.1 中检测用户代理

在 Rails 的 ActiveRecord 中,touch 有什么用?

在 Rails 中将毫秒转换为格式化日期

如何从 Rails 路由中删除控制器名称?

如何为 Rails SimpleForm Select 框设置默认 Select 值

对于 Visual Studio 用户来说,最好的 Ruby on Rails 环境是什么?

Rails - 如何在 f.submit 上放置确认弹出窗口?

警告:引用了顶级常量

rbenv:没有 gemsets 生存

Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法?

Rails - 如何在用户登录时覆盖设计 SessionsController 以执行特定任务?

在任何来源中都找不到 thread_safe-0.3.0

Ruby 1.9.2 和 Rails 3 无法打开 rails 控制台

Rails:在 link_to 中保留 GET 查询字符串参数

警告:运行 ruby​​ 或 gem 命令时不安全的世界可写目录