30代プログラム初心者がWEBエンジニアになる

30代プログラム初心者が、WEBエンジニアになるまでの奮闘を書いていきます。

rakeタスクについて

こんにちは、ぐっちと申します。

SEEDファイルを指定して実行する為に、rakeタスクについて調べました。

 

そもそもRakeタスクとは、ターミナルなどのコマンドライン上からアプリケーションを実行できる機能の一つで、私がよく使っていたrake routesも標準で装備されたRakeタスクに当たります。

また、自分でタスクを作成することが可能となっています。

 

今回はSEEDファイルをファイル名を指定して実行させたいので、まずはコマンドでファイルを作成しました。

$ rails g task seed

これでlib/tasks/seed.rakeが生成されるのでこのファイルに処理を書きます。

以下が記述したコードです。

Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each do |file|
desc "db/seeds/ ディレクトリからシードデータを読み込む"
task "db:seed:#{File.basename(file).gsub(/\..+$/, '')}" => :environment do
load(file)
end
end

 

まずdb/seedsディレクトリを作成し、そこにSEEDファイルを追加していきます。

そして、$ rake db:seed: ファイル名 を実行する事により実行出来ます。

 

同じ事をやりたい人はいる様で、調べると色々記事が出てきて実装出来ました。

ただ、SEEDファイルを作るのがまた大変でした……

次回はカテゴリーデータを用意する所を書きたいと思います。

 

ここまで読んでくださり、ありがとうございました。

 ツイッターで日々の学習をつぶやいています

@Yamaguc45844169