Report abuse


			
class Tag < ActiveRecord::Base
  def self.separator
    ','
  end

  def self.tag_string(tags)
    Array(tags).select { |t| self === t }.map(&:name) * "#{separator} ".squeeze(' ')
  end
end

class Post < ActiveRecord::Base
  has_and_belong_to_many :tags do
    def to_s
      Tag.tag_string(self)
    end
  end
end


------


class Tag < ActiveRecord::Base
  def self.separator
    ','
  end

  def self.tag_string(tags)
    Array(tags).select { |t| self === t }.map(&:name) * "#{separator} ".squeeze(' ')
  end

  module AsString
    def to_s
      Tag.tag_string(self)
    end
  end
end

class Post < ActiveRecord::Base
  has_and_belong_to_many :tags, :extend => Tag::AsString
end