diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-05-16 23:01:32 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-05-16 23:21:35 +0100 |
commit | 46f30f902fb5e705683dea19ec22179c61e5f208 (patch) | |
tree | a733a5c24ba1411968e448185a7097be1151e63a /activerecord/lib/active_record/attribute_methods.rb | |
parent | 345f030c5b6c0a28ddde56c80a1112b00d345c79 (diff) | |
download | rails-46f30f902fb5e705683dea19ec22179c61e5f208.tar.gz rails-46f30f902fb5e705683dea19ec22179c61e5f208.tar.bz2 rails-46f30f902fb5e705683dea19ec22179c61e5f208.zip |
Merge documentation changes from docrails.
commit 0fc3381aa5359f31b36057d7bfba2e0eb6a3c064
Author: Xavier Noria <fxn@hashref.com>
Date: Fri May 16 23:44:51 2008 +0200
Conventions. Formatting. Revising docs all over the rails.
This revision encourages the modern resource-oriented form_for usage. In addition corrects some markup and other details.
commit 70e4bcf5cb039bea073851faed2df9f465e6f2f8
Author: Chris Kampmeier <chris@kampers.net>
Date: Fri May 16 12:09:46 2008 -0700
Fix a couple spelling errors in docs
commit 6ea5e4208f724b50e774e6a1af027336c3ee3de1
Author: Chris O'Sullivan <thechrisoshow@gmail.com>
Date: Fri May 16 16:09:11 2008 +0100
Added docs about source_type for has_one association
commit a01a0178be297b0eb62909819a15a01c6b69a841
Author: miloops <miloops@gmail.com>
Date: Wed May 14 09:22:39 2008 +0000
Change migration generator USAGE to explain the timestamped migrations behaviour
commit 4e2bc02163aa646ab1304b1b5bec98a7af8927f5
Author: Xavier Noria <fxn@hashref.com>
Date: Fri May 16 00:43:03 2008 +0200
minor revision in url_for docs
Made explicit that RESTful and controller/action styles are not interchangeable, and revised some markup.
commit d6ecce66f4e125531875006eea8022b73fe135b5
Author: Michael Hartl <michael@michaelhartl.com>
Date: Thu May 15 10:46:40 2008 -0700
Expanded and updated the link_to documentation
commit b8c46c86f0b785f6afc3c58eeb1b347543f5901e
Author: Cody Fauser <cody@jadedpixel.com>
Date: Wed May 14 09:10:02 2008 -0400
Improve and cleanup ActionMailer documentation
commit 9546ee299952c86329c4854f9b3776382c0575ff
Author: Yehuda Katz <wycats@gmail.com>
Date: Mon May 12 23:41:43 2008 -0700
Add documentation for Inflector.inflections
commit cbd5db8f5165f013069b02414f9bf762d88f619f
Author: Manik Juneja <mjuneja@manik-junejas-computer.local>
Date: Mon May 12 23:43:31 2008 +0530
minor changes in railties/README. Added dbconsole introduction
commit 130a280ddee1f96ccf378b52c17ee742b5e54f4a
Author: Gaurav Sharma <gaurav@norbauer.com>
Date: Mon May 12 18:00:19 2008 +0530
adding documentation for cached_attributes
commit 164c9586480f0a02522ea15ec7fb42c6a783a74d
Author: TomK32 <tomk32@tomk32.de>
Date: Mon May 12 10:59:33 2008 +0200
proper heading for "Example:"
commit 35634feb474cc55fbc95edeffe98cec241d45f23
Author: Matt Boehlig <thetamind@gmail.com>
Date: Sun May 11 16:46:07 2008 -0500
Cleanup whitespace and change_table documentation
commit 80bba28a1a56a0cafeb0fc94659905e88129bc31
Author: Xavier Noria <fxn@hashref.com>
Date: Sun May 11 02:54:02 2008 +0200
documented the source annotation extractor
commit e6823bb1650d9b0fea58bd2d355f388961a408b3
Author: Mike Mondragon <mikemondragon@gmail.com>
Date: Fri May 9 13:49:56 2008 -0700
Added additional information about processing email with ActionMailer and the strategy one might want to employ to do so.
commit e6afd8b2736364322b673bbdcca3e9b38b6d3da0
Author: Xavier Noria <fxn@hashref.com>
Date: Thu May 8 23:49:36 2008 +0200
corrected and completed docs of increment/decrement/toggle in AR::Base
commit 2fead68b3192332eee27945ed95a94a64ca73f70
Author: Austin Putman <austin@emmanuel.local>
Date: Wed May 7 19:35:46 2008 -0700
Documented class methods on ActionController::Routing. These are dangerous, and mostly used for testing.
commit f5b84182dbc39bea79c8ee319c688d00fa99f9d1
Author: Teflon Ted <github@rudiment.net>
Date: Wed May 7 16:08:49 2008 -0400
Added explanation about errant inflections not being patched in the future in order to avoid breaking legacy applications.
commit 370f4f51722cec49ace17093d29e9ce9e8f15cfb
Author: Sunny Ripert <negatif@gmail.com>
Date: Wed May 7 14:00:59 2008 +0200
Applied list conventions in AR::Base
commit 5bd18429f09d44e75191bec42a6db04bd33f3030
Author: Sunny Ripert <negatif@gmail.com>
Date: Wed May 7 13:53:35 2008 +0200
Renamed Options list to Attributes list whenever they weren't option hashes in AR::Base
commit 2fa628e34b25166afb49e3afeea87e770ab84256
Author: Xavier Noria <fxn@hashref.com>
Date: Wed May 7 11:52:33 2008 +0200
revised details in Exceptions section of AR::Base docs
commit d912bd5672316454457ae83f6e9dda5197beeb6f
Author: Yaroslav Markin <yaroslav@markin.net>
Date: Wed May 7 13:50:28 2008 +0400
Add a filter_parameter_logging usage hint to generated ApplicationController.
This may help to remind the developer to filter sensitive information from application logs.
Closes #11578
commit f81d771f0657ae8375b84a77a059812cce5d6fd9
Author: Jack Danger Canty <git@6brand.com>
Date: Tue May 6 23:35:05 2008 -0700
doc: ActiveRecord::Reflection::AssociationReflection#through_reflection
Added documentation demonstrating the use of #through_reflection for
finding intervening reflection objects for HasManyThrough
and HasOneThrough.
commit ae6b46f00b5b8b2939c6b37ce3329c83de7e71db
Author: Cheah Chu Yeow <chuyeow@gmail.com>
Date: Wed May 7 13:47:41 2008 +0800
Document AttributeAssignmentError and MultiparameterAssignmentErrors.
commit 8f463550b597db2156b67733f31aed13487fbc3a
Author: John Barnette <jbarnette@gmail.com>
Date: Tue May 6 22:46:44 2008 -0700
Killing/fixing a bunch of outdated language in the AR README.
commit 284a930a93fbee16e25d06392779dbf2f03e9e12
Author: Jonathan Dance <jd@wuputah.com>
Date: Tue May 6 14:58:26 2008 -0400
improvements to the page caching docs
commit 9482da621390c874da7c921c8bd6230caae7035a
Author: Sunny Ripert <negatif@gmail.com>
Date: Mon May 5 18:13:40 2008 +0200
validates_numericality_of() "integer" option really is "only_integer"
commit e9afd6790a8f530528f6597a7f59bb283be754f6
Author: Sunny Ripert <negatif@gmail.com>
Date: Mon May 5 12:11:59 2008 +0200
Harmonized hash notation in AR::Base
commit 67ebf14a91ffd970b582be4ff2991d691a9cf3e1
Author: Sunny Ripert <negatif@gmail.com>
Date: Mon May 5 12:06:19 2008 +0200
Turned options into rdoc-lists in AR::Base
commit 0ec7c0a41d889d4e5382b9dff72f1aaba89bf297
Author: Marshall Huss <mwhuss@Macbook.local>
Date: Sun May 4 23:21:33 2008 -0400
Added information of how to set element_name in the case the user has a name confliction with an existing model
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index 2db27226f2..c2604894a8 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -16,16 +16,20 @@ module ActiveRecord # Declare and check for suffixed attribute methods. module ClassMethods - # Declare a method available for all attributes with the given suffix. - # Uses method_missing and respond_to? to rewrite the method + # Declares a method available for all attributes with the given suffix. + # Uses +method_missing+ and <tt>respond_to?</tt> to rewrite the method + # # #{attr}#{suffix}(*args, &block) + # # to + # # attribute#{suffix}(#{attr}, *args, &block) # - # An attribute#{suffix} instance method must exist and accept at least - # the attr argument. + # An <tt>attribute#{suffix}</tt> instance method must exist and accept at least + # the +attr+ argument. # # For example: + # # class Person < ActiveRecord::Base # attribute_method_suffix '_changed?' # @@ -60,8 +64,8 @@ module ActiveRecord !generated_methods.empty? end - # generates all the attribute related methods for columns in the database - # accessors, mutators and query methods + # Generates all the attribute related methods for columns in the database + # accessors, mutators and query methods. def define_attribute_methods return if generated_methods? columns_hash.each do |name, column| @@ -89,8 +93,9 @@ module ActiveRecord end end - # Check to see if the method is defined in the model or any of its subclasses that also derive from ActiveRecord. - # Raise DangerousAttributeError if the method is defined by ActiveRecord though. + # Checks whether the method is defined in the model or any of its subclasses + # that also derive from ActiveRecord. Raises DangerousAttributeError if the + # method is defined by Active Record though. def instance_method_already_implemented?(method_name) method_name = method_name.to_s return true if method_name =~ /^id(=$|\?$|$)/ @@ -104,17 +109,19 @@ module ActiveRecord # +cache_attributes+ allows you to declare which converted attribute values should # be cached. Usually caching only pays off for attributes with expensive conversion - # methods, like date columns (e.g. created_at, updated_at). + # methods, like time related columns (e.g. +created_at+, +updated_at+). def cache_attributes(*attribute_names) attribute_names.each {|attr| cached_attributes << attr.to_s} end - # returns the attributes where + # Returns the attributes which are cached. By default time related columns + # with datatype <tt>:datetime, :timestamp, :time, :date</tt> are cached. def cached_attributes @cached_attributes ||= columns.select{|c| attribute_types_cached_by_default.include?(c.type)}.map(&:name).to_set end + # Returns +true+ if the provided attribute is being cached. def cache_attribute?(attr_name) cached_attributes.include?(attr_name) end @@ -210,14 +217,14 @@ module ActiveRecord end # ClassMethods - # Allows access to the object attributes, which are held in the @attributes hash, as though they + # Allows access to the object attributes, which are held in the <tt>@attributes</tt> hash, as though they # were first-class methods. So a Person class with a name attribute can use Person#name and # Person#name= and never directly use the attributes hash -- except for multiple assigns with # ActiveRecord#attributes=. A Milestone class can also ask Milestone#completed? to test that - # the completed attribute is not nil or 0. + # the completed attribute is not +nil+ or 0. # # It's also possible to instantiate related objects, so a Client class belonging to the clients - # table with a master_id foreign key can instantiate master through Client#master. + # table with a +master_id+ foreign key can instantiate master through Client#master. def method_missing(method_id, *args, &block) method_name = method_id.to_s @@ -288,7 +295,7 @@ module ActiveRecord # Updates the attribute identified by <tt>attr_name</tt> with the specified +value+. Empty strings for fixnum and float - # columns are turned into nil. + # columns are turned into +nil+. def write_attribute(attr_name, value) attr_name = attr_name.to_s @attributes_cache.delete(attr_name) @@ -319,8 +326,9 @@ module ActiveRecord end end - # A Person object with a name attribute can ask person.respond_to?("name"), person.respond_to?("name="), and - # person.respond_to?("name?") which will all return true. + # A Person object with a name attribute can ask <tt>person.respond_to?("name")</tt>, + # <tt>person.respond_to?("name=")</tt>, and <tt>person.respond_to?("name?")</tt> + # which will all return +true+. alias :respond_to_without_attributes? :respond_to? def respond_to?(method, include_priv = false) method_name = method.to_s |