require 'fastercsv' class Map < ActiveRecord::Base def self.from_city_name(city_name) self.find_or_initialize_by_name(city_name).save! end def self.pair self.all(:order => 'RANDOM()', :limit => 2) end def self.import(csv_filename) FasterCSV.parse(open(csv_filename), :headers => true, :header_converters => [:downcase, :symbol]).each do |row| map = self.find_or_initialize_by_name("#{row[:city]}, #{row[:region]}") map.save if block_given? yield map end end end def rounds Mash.count(:conditions => ['map_a = :id OR map_b = :id', {:id => self.id}]) end end