開発者データベース (Ruby on rails) を頻繁にクリアして再ロードしたい。
もちろん、Web ページから手動でデータを追加することもできますが、この種のテストの戦略を誰かが持っているかどうか疑問に思っていました。
(私はすでにユニット、機能、および統合テストを持っています、fyi)
ありがとう
開発者データベース (Ruby on rails) を頻繁にクリアして再ロードしたい。
もちろん、Web ページから手動でデータを追加することもできますが、この種のテストの戦略を誰かが持っているかどうか疑問に思っていました。
(私はすでにユニット、機能、および統合テストを持っています、fyi)
ありがとう
seed.yml
ディレクトリにファイルを作成しますdb
。作成するモデルごとに YAML ドキュメントを追加します。このドキュメントには、ハッシュのリストが含まれている必要があります。各ハッシュにはモデル属性が含まれている必要があります。
users:
- login: jake
password: jake123
password_confirmation: jake123
first_name: Jake
last_name: Driver
- login: Jane
password: jane123
password_confirmation: jane123
first_name: Jane
last_name: McCain
categories:
products:
あなたのseed.rbファイルで
seed_file = File.join(Rails.root, 'db', 'seed.yml')
config = YAML::load_file(seed_file)
User.transaction do
config.keys.each{ |key| key.classify.constantize.create(config[key]) }
end
YML ファイルのシード データを変更する方が簡単だと思います。私が構築したアプリケーションは、別のチームによってデプロイされています。彼らもこのアプローチを気に入っています。
データをクリアするために、lib\tasks ディレクトリに rake タスクがあります。rake タスクを として実行しますapp:flush
。
namespace :app do
desc "Flush all the seed data "
task :flush => :environment do
config = YAML::load_file(File.join(Rails.root, 'db', 'seed.yml'))
User.transaction do
config.keys.each{ |table| truncate_table(table)}
end
end
end
「フィクスチャ」と「シード データ」を見てみましょう ;-) 私はあなたに明確な説明をするのに十分ではありませんが、これら 2 つのキーをグーグルで調べれば、必要なすべての情報が得られるはずです。
これらをチェックしてください:http://derekdevries.com/2009/04/13/rails-seed-data/
http://lptf.blogspot.com/2009/09/seed-data-in-rails-234.html