7

我有一个数据库项目和两个项目。他们有名为“受欢迎程度”的列,我将其设置为 0。

class Item < ActiveRecord::Base
  attr_accessible .. :popularity, ..

  before_create :default_values
  def default_values
    if self.popularity.nil? == true || self.popularity.blank? == true || self.popularity.class != Integer
      self.popularity = 0
    end
  end

如何通过 code\console 更改此值并保存?我试过

  Item.find(1).popularity = 1
  Item.save

但这并没有挽救我的价值。怎么了?

4

4 回答 4

15

这是解决方案

item = Item.find(1)
item.popularity = 1
item.save
于 2012-09-08T09:56:56.397 回答
2
item = Item.first
item.popularity = 1
item.save
于 2012-09-08T09:57:33.153 回答
1
Item.update(1, popularity: 1)
  • 运行验证并保存。

  • 如果不存在,则引发未找到的记录。

有关更新属性的更多信息https://zaiste.net/posts/rails-activerecord-updating-attributes-object-fields/

于 2020-07-23T10:39:10.317 回答
0

另一种单行替代方案:

Item.first.update({:popularity => "1"})
于 2020-10-28T13:33:51.907 回答