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