使用Mongoid更新布尔数据

时间:2018-10-21 08:48:54

标签: ruby-on-rails ruby mongoid

我使用rails 5.2.1和mongoid 7.0.2

而且我尝试在用户模型中使用切换

class User
  include Mongoid::Document
  field :admin, type: Boolean, default: "false"
  has_many :categories

  def toggle!(field)
    send "#{field}=", !self.send("#{field}?")
    save :validation => false
  end
end

但是当我在控制台中尝试时,出现此错误:

irb(main):003:0> user.toggle!(:admin)
Traceback (most recent call last):
        2: from (irb):3
        1: from app/models/user.rb:7:in `toggle!'
NameError (undefined local variable or method `scope_stack' for Category:Class
Did you mean?  scopes)

1 个答案:

答案 0 :(得分:1)

class User
  include Mongoid::Document
  field :admin, type: Boolean, default: "false"
  has_many :categories

  def toggle!(field)
    self[field] = !self[field]
    self.save(validate: false)
  end
end

在此实施过程中,您仍然遇到同样的问题吗?