【问题标题】:Increasing counter in database增加数据库中的计数器
【发布时间】:2012-10-25 13:37:43
【问题描述】:

我的数据库中有一个名为 ads_counter 的字段,每次呈现此广告时我都需要增加它的值。

我尝试编写一个自定义方法并在负责此数据的控制器中使用它,但这不起作用。是否有任何内置方法可以增加数据库中字段的值?

【问题讨论】:

  • 如果您分享您的结构,我们可以为您提供更多信息!谢谢!
  • 已经找到另一种方法,使用 update_attributes。谢谢
  • 最好的方法是调用增量,因为 update_attributes 调用验证和东西。增量命令完全按照您的要求执行。

标签: ruby-on-rails ruby-on-rails-3 activerecord


【解决方案1】:

是的,您可以在 ActiveRecord 中调用 increment 方法。

供参考:increment

编辑:

要直接保存,请使用increment!

你可以这样使用它:

instance.increment!(:ads_counter)

它会自动增加 1

instance.increment!(:ads_counter, <number>)

它按提供的数字递增

【讨论】:

  • 很好,完整的答案:对文档的尊重 + 真实的例子 + 更多关于 + 漂亮的格式。谢谢。
【解决方案2】:

你有方法 increment! 增加一个属性并保存记录

your_object.increment!(:ads_counter)

将此代码放入控制器的show 方法中。

【讨论】:

  • 这个方法只加1,还是有额外的参数?
  • 你可以使用your_object.increment!(:ads_counter, 42);我的答案中有一个指向该方法的文档的链接
【解决方案3】:

你可以试试increment!方法

object.increment!(:method_name)

【讨论】:

  • 请提供详细答案。谢谢
猜你喜欢
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
  • 2016-10-23
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多