Skip to content

Instantly share code, notes, and snippets.

@sekrett
Created January 12, 2012 17:25
Show Gist options
  • Select an option

  • Save sekrett/1601872 to your computer and use it in GitHub Desktop.

Select an option

Save sekrett/1601872 to your computer and use it in GitHub Desktop.

Revisions

  1. Alexander Zubkov created this gist Jan 12, 2012.
    18 changes: 18 additions & 0 deletions positioned.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    # Example:
    #
    # class Page < ActiveRecord::Base
    # include Positioned
    # end

    module Positioned
    def self.included model_class
    model_class.class_eval do
    before_save :set_position
    end
    end

    protected
    def set_position
    self.position ||= 1 + eval("#{self.class.to_s}.maximum(:position)").to_i
    end
    end