Skip to content

階差ロード機能の説明

baban edited this page May 25, 2016 · 7 revisions

階差ロード機能について

階差ロード機能は複数のファイルを同時にロードするときに 一部のファイルのみ、別のディレクトリに格納するときに、力を発揮します

rake db:flextures:load TABLE=users,items DIR=foo/bar OPTION=stair

ディレクトリは、深いものから順に検索する、なので"foo"ディレクトリ以下より、"foo/bar"以下のファイルを優先して探します。

また、拡張子の優先順位は"erb.csv"、"csv"、"erb.yml"、"yml"となっています。

なので、usersテーブルの場合次の順番で検索をかけられます。

  1. spec/fixtures/foo/bar/users.erb.csv
  2. spec/fixtures/foo/bar/users.csv
  3. spec/fixtures/foo/bar/users.erb.yml
  4. spec/fixtures/foo/bar/users.yml
  5. spec/fixtures/foo/users.erb.csv
  6. spec/fixtures/foo/users.csv
  7. spec/fixtures/foo/users.erb.yml
  8. spec/fixtures/foo/users.yml
  9. spec/fixtures/users.erb.csv
  10. spec/fixtures/users.csv
  11. spec/fixtures/users.erb.yml
  12. spec/fixtures/users.yml

そのため、用途ごとにディレクトリを作って、usersテーブルのデータだけを切り分けたいときなどに 例外となっているファイルと通常のファイルを一括して読みだす事ができます