Method: ActiveRecord::Persistence#toggle

Defined in:
activerecord/lib/active_record/persistence.rb

#toggle(attribute) ⇒ Object

Assigns to attribute the boolean opposite of attribute?. So if the predicate returns true the attribute will become false. This method toggles directly the underlying value without calling any setter. Returns self.

Example:

user = User.first
user.banned? # => false
user.toggle(:banned)
user.banned? # => true


681
682
683
684
# File 'activerecord/lib/active_record/persistence.rb', line 681

def toggle(attribute)
  self[attribute] = !public_send("#{attribute}?")
  self
end