$ rails new
をするとアプリケーションフォルダ内に大量のサブフォルダが自動的に吐き出される。
このそれぞれに意味があってそれぞれがもちろん重要なのだが、実際にはほとんど触らないものも多い。
初めてRailsアプリ開発に取り組もうとして、このフォルダの多さに面食らって挫折してしまった人も多いと思う(私もそうだ)。そこで、簡単なアプリ開発でよく使う(触る)フォルダをまとめてみる。
app/assets
JavaScriptやcssなどのファイルをRailsではassets(アセット)と呼ぶ。これらのファイルが置かれているフォルダがここ。
JavaScriptやcssを触る際には、基本的にはこのフォルダを触ることになる。
app/assets/javascripts/aplication.js
JavaScriptをインクルードしたりするときは、ここに記述する。
app/assets/javascripts/stylesheet.js
CSSをインクルードしたりするときは、ここに記述する。
app/controllers
いわずと知れたMVCのCにあたるControllerはすべてここに入っている。
しかし、Railsは基本がしっかりしているのでここに書かれるのは面白みがないコードであることがほとんどである。逆に、こみいった処理がここに書かれている場合、アプリの設計を見直すべきかも知れない。
app/models
MVCのMにあたるModelが入っている。Railsの場合、rails generate model Hoge name:string ...
で作成すると、自動的にモデルファイル(Hoge.rb)も生成される。何も書かなくともアプリは動作するが、バリデーションやエラーメッセージを定義するときにはここにコードを書く。ただ、ここに書くのはRubyとは名ばかりの謎言語なので、ちゃんと勉強してからでないと心が折れる。
app/view
MVCのVにあたるViewが入っている。個人的にはこのフォルダに書き込んでいる時間が一番長い。ユーザーインターフェースを記述する。
config/routes.rb
ルーティング、どんなURLに対しどのページを表示するかを定義する。基本的にはModelをresourcesとして読み込むことで、そのモデルに標準で備わっているコントローラーに対応するページが自動的にに定義される。個別に定義したい場合、`model#method'の形式でリソースを定義する。設計がちゃんとしていればこのファイルを触る機会は中盤以降なくなっていく。アプリ開発の途中で変更するとリンクがだめになったりするので要注意。
config/locales/ja.yml
アプリで使用するメッセージの日本語版をここに格納する。gem i18n-railsが必要。メッセージを修正する場合はModel/View/Controllerを直接書き換えるのではなくこのファイルを修正する。Model/View/Controlerには、メッセージに対応するシンボルを記述する。
Gemfile
bundlerがgemを読み込むときに参照するファイル。gemを追加する際は、直接gem hogehage install
とするのではなく、Gemfileにgem hogehage
と記述してからbundle install
をする。