light log

学んだこととか

Ruby on RailsをGetting Startedしてる

はじめに

Railsを勉強し始めた。

この前はNode.js + Expressをやってたり、無節操にいろいろGetting startedしまくってるような気がするけど、たぶん当分はRailsに集中することになる。

この本で勉強してて、いま4章の「ビュー開発」の章を読んでる。

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

Expressと違ってフルスタックだからか、Railsの設計思想であるCoCのせいか、覚えることが多くてしんどい。でもある程度覚えれば、簡単なアプリならすぐに作れそうな気がする。

当分の間このブログは、Railsについて学んだことの自分の頭の整理用まとめになると思う。

とりあえず今日はRailsのデフォルトのディレクトリ構成でもまとめておく。

Railsのディレクトリ構成

Railsのバージョンは以下の通り。

$ rails -v
Rails 4.2.1

(本に合わせて4.0.2を入れたはずだったんだけど、どのタイミングで上がったんだろう…)

新しいプロジェクトの作成は次のようにする。

$ rails new sample
      create  
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      ... 省略

これでSampleアプリの雛形が作成された。

ディレクトリ構成は以下のようになっている。express-generatorで作るexpressの雛形よりだいぶボリュームが多い。

$ cd sample/
$ tree
.
├── Gemfile
├── Gemfile.lock
├── README.rdoc
├── Rakefile
├── app
│   ├── assets
│   │   ├── images
│   │   ├── javascripts
│   │   │   └── application.js
│   │   └── stylesheets
│   │       └── application.css
│   ├── controllers
│   │   ├── application_controller.rb
│   │   └── concerns
│   ├── helpers
│   │   └── application_helper.rb
│   ├── mailers
│   ├── models
│   │   └── concerns
│   └── views
│       └── layouts
│           └── application.html.erb
├── bin
│   ├── bundle
│   ├── rails
│   ├── rake
│   ├── setup
│   └── spring
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   │   ├── development.rb
│   │   ├── production.rb
│   │   └── test.rb
│   ├── initializers
│   │   ├── assets.rb
│   │   ├── backtrace_silencers.rb
│   │   ├── cookies_serializer.rb
│   │   ├── filter_parameter_logging.rb
│   │   ├── inflections.rb
│   │   ├── mime_types.rb
│   │   ├── session_store.rb
│   │   └── wrap_parameters.rb
│   ├── locales
│   │   └── en.yml
│   ├── routes.rb
│   └── secrets.yml
├── config.ru
├── db
│   └── seeds.rb
├── lib
│   ├── assets
│   └── tasks
├── log
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── favicon.ico
│   └── robots.txt
├── test
│   ├── controllers
│   ├── fixtures
│   ├── helpers
│   ├── integration
│   ├── mailers
│   ├── models
│   └── test_helper.rb
├── tmp
│   └── cache
│       └── assets
└── vendor
    └── assets
        ├── javascripts
        └── stylesheets

38 directories, 40 files

app

開発のメインとなるディレクトリ。M,V,Cそれぞれのディレクトリに加え、アセットやヘルパーのディレクトリがある。

bin

いろいろな実行スクリプト置き場。

config

ルーティングの設定とか、いろいろな設定スクリプト置き場。

environments以下は、それぞれの環境(development, production, test)ごとの設定ファイルになっている。

アプリ起動時にinitializers以下のスクリプトが実行される。

アプリ全体から参照したい設定情報などがあれば、configディレクトリ以下に設定情報を記載したmy_config.ymlとかを置き、initializersの下に置いたmy_config.rbなんかから起動時に読み込んで定数へ設定すればよい。

db

その名の通りDB関連のディレクトリ。schemaとかマイグレーションファイルとかが置かれる。

lib

自作のライブラリとかを置く場所らしい。

log

ログ置き場。

public

公開ディレクトリ。

test

テストコードやテスト周りのスクリプト

temp

一時ファイル。

vendor

サードパーティのコード。

おわりに

いまのとこ、以上!