Test用のfixtureを今使っているデータから落とす
さすが、舞波。現在のデータベースからyamlにデータを落とす方法を知っている。
http://wota.jp/ac/?date=20060211#p01
しかし、舞波氏が書いている
desc "Save fixtures from the current environment's database" task :save_fixtures => :environment do Dir["app/models/*.rb"].each{|i| eval File.basename(i, '.rb').camelize} Object.subclasses_of(ActiveRecord::Base).each{|klass| klass.to_fixture} end
がうまく動かない。と、なんでかと思ったらCGI::Session::ActiveRecordStore::Sessionが
AcitiveRecord::Baseを継承していることがわかり、
desc "Save fixtures from the current environment's database" task :save_fixtures => :environment do Dir["app/models/*.rb"].each{|i| eval File.basename(i, '.rb').camelize} Object.subclasses_of(ActiveRecord::Base).each{|klass| klass.to_fixture unless klass==CGI::Session::ActiveRecordStore::Session} end
とRakefileに書いて、
rake save_fixtures
でうまくいきました。