aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2011-08-21 04:36:12 -0700
committerXavier Noria <fxn@hashref.com>2011-08-21 04:36:12 -0700
commit74b57b387fe750d93bb7a7cba14e979e60e96940 (patch)
treeb57c584e7b69cb296d59e7e9aea498536a2eac07 /activerecord
parent165fb830d0876b90578e2f96fe5946b53120c621 (diff)
parentdbe9a9b48280e3210f6c42789c3a2980b72febf4 (diff)
downloadrails-74b57b387fe750d93bb7a7cba14e979e60e96940.tar.gz
rails-74b57b387fe750d93bb7a7cba14e979e60e96940.tar.bz2
rails-74b57b387fe750d93bb7a7cba14e979e60e96940.zip
Merge pull request #2600 from al/finder_sql_example_update
Updated the docs for the has_many :finder_sql option
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/associations.rb16
1 files changed, 10 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index 2605a54cb6..8d755b6848 100644
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -1087,7 +1087,8 @@ module ActiveRecord
#
# [:finder_sql]
# Specify a complete SQL statement to fetch the association. This is a good way to go for complex
- # associations that depend on multiple tables. Note: When this option is used, +find_in_collection+
+ # associations that depend on multiple tables. May be supplied as a string or a proc where interpolation is
+ # required. Note: When this option is used, +find_in_collection+
# is _not_ added.
# [:counter_sql]
# Specify a complete SQL statement to fetch the size of the association. If <tt>:finder_sql</tt> is
@@ -1162,11 +1163,14 @@ module ActiveRecord
# has_many :tags, :as => :taggable
# has_many :reports, :readonly => true
# has_many :subscribers, :through => :subscriptions, :source => :user
- # has_many :subscribers, :class_name => "Person", :finder_sql =>
- # 'SELECT DISTINCT people.* ' +
- # 'FROM people p, post_subscriptions ps ' +
- # 'WHERE ps.post_id = #{id} AND ps.person_id = p.id ' +
- # 'ORDER BY p.first_name'
+ # has_many :subscribers, :class_name => "Person", :finder_sql => Proc.new {
+ # %Q{
+ # SELECT DISTINCT people.*
+ # FROM people p, post_subscriptions ps
+ # WHERE ps.post_id = #{id} AND ps.person_id = p.id
+ # ORDER BY p.first_name
+ # }
+ # }
def has_many(name, options = {}, &extension)
Builder::HasMany.build(self, name, options, &extension)
end