module Railstar::ActiveRecordExt::ClassMethods
Public Instance Methods
create_from_csv(file_path)
click to toggle source
# File lib/seed_ext.rb, line 33 def create_from_csv(file_path) CSV.foreach(file_path, :headers => true) {|row| self.create Hash[*row.to_a.flatten] } end
create_from_yml(file_path)
click to toggle source
# File lib/seed_ext.rb, line 27 def create_from_yml(file_path) YAML.load_file(file_path).each do |value| self.create value.is_a?(Array) ? value.last : value end end
truncation(sym=:yml, file_dir='db/seeds')
click to toggle source
# File lib/seed_ext.rb, line 7 def truncation(sym=:yml, file_dir='db/seeds') table_name = self.table_name || self.to_s.underscore.pluralize file_name = "#{table_name}.#{sym.to_s}" file_path = File.join(file_dir, file_name) raise "#{file_path} file not found." unless File.exist?(file_path) self.transaction do self.truncation! self.send("create_from_#{sym.to_s}", file_path) end end
truncation!()
click to toggle source
# File lib/seed_ext.rb, line 18 def truncation! case self.connection.adapter_name when "SQLite" self.connection.execute("DELETE FROM `#{self.table_name}`") else self.connection.execute("TRUNCATE TABLE #{self.table_name}") end end