Есть ли способ генерировать светильники Rails из существующего набора моделей? - PullRequest
3 голосов
/ 12 мая 2011

У меня есть приложение Rails 2.x без тестов.Я могу выписать тесты вручную, но есть ли способ автоматически генерировать приборы?Было бы неплохо не печатать все это вручную.

Я мог бы снова запустить скрипт / генерировать для всех моделей, но все уже существует, и если я правильно понимаю генераторы, мне все равно придетсявведите все атрибуты.

Я думал о запуске консоли Rails и, например, ...

>> y VendorUser.all.rand

Это дало бы мне YAML со всеми атрибутами, но они быбыть не в порядке, и это все еще довольно много времени.

Кто-нибудь может предложить более эффективный вариант?

1 Ответ

4 голосов
/ 12 мая 2011

Вот грабли для генерации светильников.

desc "extracting data for fixtures"
task :extract_fixtures => :environment do
  sql  = "SELECT * FROM %s"
  skip_tables = ["schema_info","schema_migrations"]
  ActiveRecord::Base.establish_connection
  (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|
    i = "000"
    File.open("#{RAILS_ROOT}/test/fixtures/#{table_name}.yml", 'w' ) do |file|
      data = ActiveRecord::Base.connection.select_all(sql % table_name)
      file.write data.inject({}) { |hash, record|
        hash["#{table_name}_#{i.succ!}"] = record
        hash
      }.to_yaml
    end
  end
end
...