3

私は今一週間探しています。Rails3を使用しています。

アプリにドキュメント セクションがあり、データベースに偽のデータを入力したいと考えています。ここまでは非常に簡単でした。Fixture フォルダーに .yml ファイルを追加するだけです。

今私が欲しいのは、rake db:fixtures:load. これを達成する方法がわかりません。私はそのfixture_file_upload機能を探してきましたが、それが行くべき道だとは思いません。

何か案が?前もって感謝します。

編集:完全に明確にするために、ドキュメントフィクスチャにリストするドキュメントをアップロードしたいと思います。したがって、 Irake db:fixtures:loadの場合、ドキュメントは実際にアップロードされます。

4

3 に答える 3

5

通常、シード データのロードは rake db:seed、 を実行するだけで行われますdb/seed.rb。そこでは、やりたいことが何でもできます。

フィクスチャを再利用したい場合は、手動でロードできます:

require 'active_record/fixtures'
ActiveRecord::Fixtures.create_fixtures(Rails.root.join('test/fixtures'), 
                                       'your_yml_file')
于 2013-06-11T21:03:58.377 に答える
1

FIXTURES 環境変数を渡す

test/fixtures/documents.yml現在ドキュメント テーブルにあるデータを上書きしても構わないと仮定すると、次のようにフィクスチャをロードできます。

rake db:fixtures:load FIXTURES=documents

必要に応じて、適切な RAILS_ENV を渡して、テストや本番など、開発データベース以外にデータをロードすることもできます。ただし、最初にデータベースをバックアップしてください。入力ミスにより、現在のデータ セットが消去される可能性があります。

于 2013-06-11T20:37:59.753 に答える
0

テスト用のフィクスチャ データをインストールしていますか、それともテスト/フィクスチャを使用して偽の開発データをロードしていますか? 前者の場合は、テスト ランナーがすべてのテストの間に大量のファイルをアップロードすることを望まないため、難しいことです。後者の場合は、代わりに rake db:seeds を使用する必要があります。これにより、Rails アプリのコンテキストで db/seeds.rb が実行されます。環境フラグを使用して、開発中のみ偽のデータを読み込みます。その後、添付ライブラリの API を使用してファイルを「アップロード」できます。

于 2013-06-11T20:57:13.870 に答える