diff options
author | Xavier Noria <fxn@hashref.com> | 2011-08-21 04:36:12 -0700 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2011-08-21 04:36:12 -0700 |
commit | 74b57b387fe750d93bb7a7cba14e979e60e96940 (patch) | |
tree | b57c584e7b69cb296d59e7e9aea498536a2eac07 | |
parent | 165fb830d0876b90578e2f96fe5946b53120c621 (diff) | |
parent | dbe9a9b48280e3210f6c42789c3a2980b72febf4 (diff) | |
download | rails-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
-rw-r--r-- | activerecord/lib/active_record/associations.rb | 16 |
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 |