This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sat Oct 18 07:27:32 -0700 2008 | |
| |
Manifest.txt | Thu Mar 19 11:08:10 -0700 2009 | |
| |
README | Sat Oct 18 07:27:32 -0700 2008 | |
| |
Rakefile | Wed Mar 04 12:14:03 -0800 2009 | |
| |
immutable_attributes.gemspec | Thu Mar 19 11:08:52 -0700 2009 | |
| |
init.rb | Tue Dec 16 23:12:37 -0800 2008 | |
| |
install.rb | Fri Aug 03 16:47:42 -0700 2007 | |
| |
lib/ | Tue Dec 16 23:14:00 -0800 2008 | |
| |
rails/ | Thu Mar 27 13:09:59 -0700 2008 | |
| |
test/ | Tue Dec 16 23:12:37 -0800 2008 | |
| |
uninstall.rb | Fri Aug 03 16:38:33 -0700 2007 |
README
ImmutableAttributes
===================
When you want to prevent certain attributes from being changed once set you can declare them as immutable:
class MyModel < ActiveRecord::Base
attr_immutable :permalink, :param_identifier
end
When MyModel.find(:first).permalink = 'anything' is called it will raise an ImmutableAttributeError
MyModel.new.permalink = 'works!' will properly set the value because the record is unsaved.
If you'd only like this to happen for certain conditions, and want to handle other attribute-writers, too (like
update_attribute), you can use the validation.
validates_immutable :permalink
Configuration options for the validation:
* :message - A customer error message (default is: "can't be changed")
* :if - Specifies a method, proc, or string to call to determine if the validation should occure (e.g., :if =>
:allow_validation or :if => Proc.new{|user| user.signup_step > 2}. The method, proc or string should return or evaluate
to a true or false value.
* :unless - Specifies a method, proc, or string to call to determine if the validation should not occure (e.g., :unless
=> :skip_validation or :unless => Proc.new{|user| user.signup_step <= 2}. The method, proc or string should return or
evaluate to a true or false value.
Created by Jack Danger Canty @ http://6brand.com
Released under the same licence as Rails (MIT)







