aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/README.rdoc
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2010-08-14 02:13:00 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2010-08-14 04:12:33 -0300
commitb451de0d6de4df6bc66b274cec73b919f823d5ae (patch)
treef252c4143a0adb3be7d36d543282539cca0fb971 /activemodel/README.rdoc
parent1590377886820e00b1a786616518a32f3b61ec0f (diff)
downloadrails-b451de0d6de4df6bc66b274cec73b919f823d5ae.tar.gz
rails-b451de0d6de4df6bc66b274cec73b919f823d5ae.tar.bz2
rails-b451de0d6de4df6bc66b274cec73b919f823d5ae.zip
Deletes trailing whitespaces (over text files only find * -type f -exec sed 's/[ \t]*$//' -i {} \;)
Diffstat (limited to 'activemodel/README.rdoc')
-rw-r--r--activemodel/README.rdoc54
1 files changed, 27 insertions, 27 deletions
diff --git a/activemodel/README.rdoc b/activemodel/README.rdoc
index 73c58a87db..9b96bfaba7 100644
--- a/activemodel/README.rdoc
+++ b/activemodel/README.rdoc
@@ -18,38 +18,38 @@ modules:
class Person
include ActiveModel::AttributeMethods
-
+
attribute_method_prefix 'clear_'
define_attribute_methods [:name, :age]
-
+
attr_accessor :name, :age
-
+
def clear_attribute(attr)
send("#{attr}=", nil)
end
end
-
+
person.clear_name
person.clear_age
-
+
{Learn more}[link:classes/ActiveModel/AttributeMethods.html]
-
+
* Callbacks for certain operations
class Person
extend ActiveModel::Callbacks
define_model_callbacks :create
-
+
def create
_run_create_callbacks do
# Your create action methods here
end
end
end
-
+
This generates +before_create+, +around_create+ and +after_create+
class methods that wrap your create method.
-
+
{Learn more}[link:classes/ActiveModel/CallBacks.html]
* Tracking value changes
@@ -66,36 +66,36 @@ modules:
person.name = 'robert'
person.save
person.previous_changes # => {'name' => ['bob, 'robert']}
-
+
{Learn more}[link:classes/ActiveModel/Dirty.html]
* Adding +errors+ interface to objects
Exposing error messages allows objects to interact with Action Pack
helpers seamlessly.
-
+
class Person
-
+
def initialize
@errors = ActiveModel::Errors.new(self)
end
-
+
attr_accessor :name
attr_reader :errors
-
+
def validate!
errors.add(:name, "can not be nil") if name == nil
end
-
+
def ErrorsPerson.human_attribute_name(attr, options = {})
"Name"
end
-
+
end
-
+
person.errors.full_messages
# => ["Name Can not be nil"]
-
+
person.errors.full_messages
# => ["Name Can not be nil"]
@@ -106,7 +106,7 @@ modules:
class NamedPerson
extend ActiveModel::Naming
end
-
+
NamedPerson.model_name # => "NamedPerson"
NamedPerson.model_name.human # => "Named person"
@@ -117,19 +117,19 @@ modules:
ActiveModel::Observers allows your object to implement the Observer
pattern in a Rails App and take advantage of all the standard observer
functions.
-
+
{Learn more}[link:classes/ActiveModel/Observer.html]
* Making objects serializable
ActiveModel::Serialization provides a standard interface for your object
to provide +to_json+ or +to_xml+ serialization.
-
+
s = SerialPerson.new
s.serializable_hash # => {"name"=>nil}
s.to_json # => "{\"name\":null}"
s.to_xml # => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<serial-person...
-
+
{Learn more}[link:classes/ActiveModel/Serialization.html]
* Internationalization (i18n) support
@@ -137,10 +137,10 @@ modules:
class Person
extend ActiveModel::Translation
end
-
+
Person.human_attribute_name('my_attribute')
# => "My attribute"
-
+
{Learn more}[link:classes/ActiveModel/Translation.html]
* Validation support
@@ -160,7 +160,7 @@ modules:
person.valid? # => false
{Learn more}[link:classes/ActiveModel/Validations.html]
-
+
* Custom validators
class Person
@@ -168,13 +168,13 @@ modules:
validates_with HasNameValidator
attr_accessor :name
end
-
+
class HasNameValidator < ActiveModel::Validator
def validate(record)
record.errors[:name] = "must exist" if record.name.blank?
end
end
-
+
p = ValidatorPerson.new
p.valid? # => false
p.errors.full_messages # => ["Name must exist"]