Validations for making ActiveRecord objects immutable.
class Person < ActiveRecord::Base immutable :unless => :can_change?, :message => "I don't like being changed." def can_change? true end end > p = Person.first > p.plays = "soccer" > p.valid? => false > p.errors => {:base=>["I don't like being changed."]} class Car < ActiveRecord::Base validates :color, :immutable => { :if => lambda { !color_can_change? }, :message => "is beautiful already." } def color_can_change? false end end > c = Car.first > c.color = "red" > c.valid? => false > c.errors => {:color=>["is beautiful already."]}
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or changelog. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
See LICENSE for details.