diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-12-29 00:07:46 +0530 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-12-29 00:07:46 +0530 |
commit | 91e28aae8649c503e81d66ad6829403ccc2c6571 (patch) | |
tree | ed51b3519723cc1966e1faa31d0a2478f8b2c0e0 /activerecord/lib/active_record/relation.rb | |
parent | e8ca22d129c1e93574e770dd69dc964be6686469 (diff) | |
download | rails-91e28aae8649c503e81d66ad6829403ccc2c6571.tar.gz rails-91e28aae8649c503e81d66ad6829403ccc2c6571.tar.bz2 rails-91e28aae8649c503e81d66ad6829403ccc2c6571.zip |
Add Model.having and Relation#having
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index 291e97ff83..c7a74b7763 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -55,6 +55,18 @@ module ActiveRecord from.present? ? create_new_relation(@relation.from(from)) : create_new_relation end + def having(*args) + return create_new_relation if args.blank? + + if [String, Hash, Array].include?(args.first.class) + havings = @klass.send(:merge_conditions, args.size > 1 ? Array.wrap(args) : args.first) + else + havings = args.first + end + + create_new_relation(@relation.having(havings)) + end + def group(groups) groups.present? ? create_new_relation(@relation.group(groups)) : create_new_relation end |