Test用のfixtureを今のdbに戻す
ar_fixturesにあるload_from_fileがなんだかうまく動きません。
ruby ./script/runner "User.load_from_file('test/fixtures/users.yml')"
で動くはずなのですが、エラーが出ます。
なので、大幅に書き換えてしまいました。やっつけですけど。
そのパッチ。
--- ar_fixtures.rb (リビジョン 707) +++ ar_fixtures.rb (リビジョン 720) @@ -24,17 +24,24 @@ end records = YAML::load( File.open( File.expand_path(path, RAILS_ROOT) ) ) - records.each do |record| - record_copy = self.new(record.attributes) - record_copy.id = record.id + records.each do |key,record| +=begin + record_copy = self.new(record) + record_copy["id"] = record["id"] # For Single Table Inheritance - klass_col = record.class.inheritance_column.to_sym - if record[klass_col] - record_copy.type = record[klass_col] + begin + klass_col = record.class.inheritance_column.to_sym + if record[klass_col] + record_copy.type = record[klass_col] + end + rescue end - record_copy.save + record_copy.save! +=end + rc=self.new(record) + rc.save end if connection.respond_to?(:reset_pk_sequence!)
これでうまく行きました。
$ ./script/runner "User.load_from_file('test/fixtur es/users.yml')"
を実行すると見事にデータが戻されているはず。