今あるデータベースからseed-fu gemを利用してfixtureデータを作る。 カテゴリの名前の取り込みなどに使うと便利。
rails consoleで
SeedFu::Writer.write('db/fixtures/user.rb',{ class_name: ‘User'}) do |writer| User.all.each do |user| writer << user.attributes end end
attributes ないと、 < obj > 型になってしまうので注意!!
また、created_at と updated_at はattributesから除きたいので、
を参考に
# lib/tasks/seed_fu_generator.rake namespace :seed_fu_generator do desc 'generate seed data from databases (env table_name is required).' task table_name: :environment do SeedFu::Writer.write("db/fixtures/#{Rails.env}/seed_fu_generator_#{ENV['TABLE_NAME']}.rb", class_name: ENV['TABLE_NAME'].classify) do |writer| ENV['TABLE_NAME'].classify.constantize.order(:id).find_each do |object| writer << object.attributes.except("created_at", "updated_at") end end end end 実行するには下記のようにテーブル名を指定します。 % rake seed_fu_generator:table_name TABLE_NAME=admin_users