method

write_attribute

write_attribute(attr_name, value)
public

Updates the attribute identified by attr_name with the specified value. Empty strings for fixnum and float columns are turned into nil.

1Note

can be useful to achieve attr_reader effect

edavey ยท Oct 30, 20081 thank

e.g.

class Account < ActiveRecord::Base 

def credit(amount)
  self.write_attribute(:balance, self.balance + amount)
  self.save!
end

def balance=(value)
  raise "You can't set this attribute. It is private."
end

end

this allows fred.account.credit(5) whilst raising an error on fred.account.balance = 1000