diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2004-12-19 13:01:47 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2004-12-19 13:01:47 +0000 |
commit | 356f16006b44ee500db0fda0da055436ff41e37e (patch) | |
tree | afbff527c329a72c8ff41b65f05e24486248f897 /activerecord/lib | |
parent | eeae1eecb9d02c4a3d8cf8436503f594acd8b302 (diff) | |
download | rails-356f16006b44ee500db0fda0da055436ff41e37e.tar.gz rails-356f16006b44ee500db0fda0da055436ff41e37e.tar.bz2 rails-356f16006b44ee500db0fda0da055436ff41e37e.zip |
Added higher_item and lower_item as public methods for acts_as_list #342 [Tobias Luetke]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@221 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/acts/list.rb | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/acts/list.rb b/activerecord/lib/active_record/acts/list.rb index 626547f005..e8f7f64db1 100644 --- a/activerecord/lib/active_record/acts/list.rb +++ b/activerecord/lib/active_record/acts/list.rb @@ -109,6 +109,18 @@ module ActiveRecord def last? self.send(position_column) == bottom_position_in_list end + + def higher_item + self.class.find_first( + "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}" + ) + end + + def lower_item + self.class.find_first( + "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}" + ) + end private @@ -123,18 +135,6 @@ module ActiveRecord # Overwrite this method to define the scope of the list changes def scope_condition() "1" end - def higher_item - self.class.find_first( - "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}" - ) - end - - def lower_item - self.class.find_first( - "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}" - ) - end - def bottom_position_in_list item = bottom_item item ? item.send(position_column) : 0 @@ -163,7 +163,7 @@ module ActiveRecord def increment_positions_on_higher_items self.class.update_all( - "#{position_column} = (#{position_column} + 1)", "#{scope_condition} AND #{position_column} < #{send(position_column)}" + "#{position_column} = (#{position_column} + 1)", "#{scope_condition} AND #{position_column} < #{send(position_column).to_i}" ) end |