54
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Railsのrakeってなんぞ?

Last updated at Posted at 2018-08-09

概要

TechTrainでメンターをやってる大木です。

そもそもRailsをいじったことがないに等しい状態(過去に少しだけ触った)であったので、改めていじってみてわからなかったところをまとめてみました。
この記事はrakeについてまとめます。

すでにこの記事の初期稿を書いた時点で、rakeは非推奨です。

もしどこか他の記事を読んでこの記事にたどり着いている人はそもそも調べている記事が古いので、
検索する際も最近1年の記事を見るなど工夫した方が良さそうです。
Rails5以降を使っている人は使わないようにしてください。

なぜ最近1年が良いのかわからないという人は、最後の見出しの項目がわかっていないかもしれません。
最後の見出しの項目を読んでみて下さい。

rake とは?

公式ドキュメント様より

Rakeとは Rubyで記述されたビルドツールです。

そうかそうか・・・。
これだけではわからない部分も多いと思うのでもう少し深掘ります。

何に使われている?

  • 設定ファイルに記述されている作業を上から順に実行してくれます。これを使って様々な処理を実行したりしていました。

Rakeの特徴

  1. Rubyで記述ができる
  2. 言語内DSLを採用
  3. Rakefileというファイルに一連の処理を定義する (この処理のまとまりを「タスク」と呼ぶ)

DSL(Domain-Specific Language)とは?

→ 特定の領域で特化して設計された言語
(例)Rake, RSpec, SQLなど。

だがしかし統一

Rails5からrakeタスクがrailsコマンドに統一されました。
ということで、railsコマンド一本でどうにかできます。

Rails5についてはAPIモードでプロジェクトを始められることくらいしか知らないというかたも多いかなと思いますので、Rail5の公式のリリースノートを読んでみましょう。

Ruby on Rails 5.0 リリースノート を読む

わからないことはまず公式ドキュメントが一番ですよね。

Rails 5.0の注目ポイント

  • Action Cable
  • Rails API
  • Active Record属性API
  • テストランナー
  • Rakeコマンドをrailsコマンドに統一
  • Sprockets 3
  • Turbolinks 5
  • Ruby 2.2.2以上が必須

以上のあたりが主な変更点です。
この辺りの詳しいことはまた別の機会でも(あれば)書きます。

余談:Rails4までの記事を見てるかも

古いRailsの記事でbatchを作成する記事+タスク+Rakeというワードが存在するのであれば、Rakeを使うものなので、Rails5からはちょっと違うやり方になります。別の記事を探しましょう。

そもそもバージョンによって色々変わるの!?ってびっくりしている方へ。

変わります。
iPhoneで使っているアプリのバージョンと同じように機能がいきなり現れたり、機能が無くなったりするのと同じです。
自分が使っているものについては、公式が出している説明書(公式ドキュメント)を読みに行くのがお勧めします。
個人のブログ記事は、あくまで参考程度に使うようにしましょう。

54
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?