使用mongoid更新布尔数据

问题描述 投票:0回答:1

我使用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)
ruby-on-rails ruby mongoid
1个回答
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

您是否仍然遇到与此实施相同的问题?

© www.soinside.com 2019 - 2024. All rights reserved.