「bundle init」と入力して、コマンド ラインから Gemfile を作成していることは知っています。しかし、config.ru ファイルと Rakefile はどのように作成するのでしょうか?
1 に答える
Kristine さん、本当の問題はどのように作成するかではなく、なぜそれらを作成したいのかということです。
これら 3 つのファイルは 3 つの異なる目的に使用されますが、Ruby アプリケーションを開始するために必要なものはありません。
Gemfile (およびそのコンパニオンであるGemfile.lockは、最初のものによって生成さ
bundle install
れ、他のものと同じように安全に保管する必要があります) – これは、最も頻繁に遭遇するものです。Bundlerというツールに属し、使用されます。依存関係管理ツールです。アプリケーションが「gem」と呼ばれる他のライブラリを必要とする場合、それを
Gemfile
、doにリストしbundle install
、後でアプリケーションを実行するときに、bundle exec ruby yourapp.rb
Bundler のように環境を処理して、アプリケーションが常に同じバージョンの取得するように設計した宝石 (これらのバージョンは実際にはGemfile.lock
ファイルに保存されており、そこから覗くことができます)。Bundler がなくても簡単に実行できますが、通常は特定の gem バージョンに固執するのが理にかなっています。そのため、人々は通常それを使用します。ツールのサイトをご覧になることを強くお勧めします。
config.ru – これは Web アプリケーションでは非常に一般的です。これは Rack 構成ファイルです。Rack と呼ばれる Ruby の世界の Web サーバー API は広く普及しています。これにより、基盤となる Web アプリケーション サーバー (Thin、Unicorn、WEBrick など) から Web アプリケーション (Rails アプリや Sinatra アプリなど) を切り離すことができます。
これは確かに自分で作成できますが、その必要はほとんどありません。Ruby/Rails の経験では、実際にこれを行うまでには長い道のりがありました。通常、このファイルは、 を呼び出して新しい Rails アプリを作成するときにブートストラップされます
rails new
。また、標準のコマンド ライン Ruby アプリでは必要ありません。
Rakefile – これもまた、かなり蔓延している野獣です。のためのもの
Makefile
は、のためmake
のものRakefile
ですrake
。Rake は、コマンド ラインから特定のタスクを記述して呼び出すための Ruby ツールです。たとえば、 を実行bundle exec rake db:migrate
すると、Rakefile で記述されたタスクが実際に開始されます。独自のタスクを簡単に設計できますが、Rails を使い始めると、通常はその必要はありません。
rails new
は Rakefile をドロップしますが、これで開始するのに十分です。実際にカスタムを行っていない限り (たとえば、Rails アプリ コードをコマンド ラインから呼び出す必要があります)、それをいじる必要はありません。言うまでもなく、名前を聞いて挨拶するだけの単純な Ruby コンソール アプリケーションを実行している場合は、このファイルも必要ありません。
この記事が理解を深め、Rails の世界への移行をスムーズにするのに役立つことを願っています!