diff options
-rw-r--r-- | activerecord/CHANGELOG | 12 | ||||
-rw-r--r-- | activerecord/lib/active_record/mixins/list.rb | 5 |
2 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index ca16757ae7..1d73dde70a 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,17 @@ *CVS* +* Added ActiveRecord::Mixins::List that can decorates an existing class with methods like move_higher/lower, move_to_top/bottom. Example: + + class TodoItem < ActiveRecord::Base + include ActiveRecord::Mixins::List + belongs_to :todo_list + + private + def scope_condition + "todo_list_id = #{todo_list_id}" + end + end + * Added the option for sanitizing find_by_sql and the offset parts in regular finds [Sam Stephenson]. Examples: Project.find_all ["category = ?", category_name], "created ASC", ["? OFFSET ?", 15, 20] diff --git a/activerecord/lib/active_record/mixins/list.rb b/activerecord/lib/active_record/mixins/list.rb index 1965c46be6..a357312105 100644 --- a/activerecord/lib/active_record/mixins/list.rb +++ b/activerecord/lib/active_record/mixins/list.rb @@ -1,4 +1,7 @@ module ActiveRecord + # Mixins are a way of decorating existing Active Record models with additional behavior. If you for example + # want to keep a number of Documents in order, you can include Mixins::List, and all of the sudden be able to + # call <tt>document.move_to_bottom</tt>. module Mixins # This mixin provides the capabilities for sorting and reordering a number of objects in list. # The class that has this mixin included needs to have a "position" column defined as an integer on @@ -12,7 +15,7 @@ module ActiveRecord # end # # class TodoItem < ActiveRecord::Base - # include ListMixin + # include ActiveRecord::Mixins::List # belongs_to :todo_list # # private |