diff options
author | Ryan Bigg <radarlistener@gmail.com> | 2011-09-14 09:43:31 +1000 |
---|---|---|
committer | Ryan Bigg <radarlistener@gmail.com> | 2011-09-14 09:43:31 +1000 |
commit | 681c4dbb0222ac403de8ea0bfcf8ad77c5430585 (patch) | |
tree | 74c66a8694be05ed9f932c12e338a918b07a0c54 /activerecord/lib | |
parent | bde113a82e792ef3480d686a1e66fea56c76c46d (diff) | |
download | rails-681c4dbb0222ac403de8ea0bfcf8ad77c5430585.tar.gz rails-681c4dbb0222ac403de8ea0bfcf8ad77c5430585.tar.bz2 rails-681c4dbb0222ac403de8ea0bfcf8ad77c5430585.zip |
Add documentation for the extending method in ActiveRecord:QueryMethods
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 7eda9ad8e8..8dc59583c1 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -147,6 +147,42 @@ module ActiveRecord relation end + # Used to extend a scope with additional methods, either through + # a module or through a block provided. + # + # The object returned is a relation, which can be further extended. + # + # === Using a module + # + # module Pagination + # def page(number) + # # pagination code goes here + # end + # end + # + # scope = Model.scoped.extending(Pagination) + # scope.page(params[:page]) + # + # This can also take a list of modules also: + # + # scope = Model.scoped.extending(Pagination, SomethingElse) + # + # === Using a block + # + # scope = Model.scoped.extending do + # def page(number) + # # pagination code goes here + # end + # end + # scope.page(params[:page]) + # + # You can also use a block and a module list: + # + # scope = Model.scoped.extending(Pagination) do + # def per_page(number) + # # pagination code goes here + # end + # end def extending(*modules) modules << Module.new(&Proc.new) if block_given? |