[勉強] Ruby on Rails #02
Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
web上では無料で公開されているこちらを利用して勉強していく上での備忘録です。
最初のアプリケーション
どんなRailsアプリケーションも最初の作成手順は同じです。rails newコマンドを実行して作成します。
$ rails new first_app
(Permission denied
がたくさん出ているのは、もしかしたらsudo
が必要なのかも。。)
Bundler
Gemfile
を編集して、bundlerを再実行してみる。
[内容]
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=rails4
gem 'rails', '4.1.4'
group :development do
gem 'sqlite3', '1.3.8'
end
gem 'sass-rails', '4.0.2'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
SQLiteをdevelopment環境でのみ使用するための指定も行なっていることに注目してください。こうすることで、Herokuで使用するデータベースソフトウェアと衝突する可能性を避けられます。
元の内容の説明。
gem 'uglifier', '>= 1.3.0'
: uglifierのバージョンが1.3.0以上であれば最新バージョンのgemがインストールされる
gem 'coffee-rails', '~> 4.0.0'
: 4.0.0から4.0.1へのアップグレードは行われますが、4.0から4.1へのアップグレードは行われません
経験上、残念ながらマイナーアップグレードですら問題を引き起こすことがあります。このため、Railsチュートリアルでは基本的にすべてのgemでバージョンをピンポイントで指定しています。
アップデートして、インストール。
bundle updateの手順が必要となるのは、Rails gemのバージョンを変更した場合に限られます。
sudo
をつけないと実行出来なかった。
$ sudo bundle update
$ sudo bundle install
rails server
Railsには開発マシンでのみブラウズできるローカルWebサーバーを起動するためのコマンドラインプログラム (スクリプト) が付属しているので、以下のコマンドを実行するだけで簡単に起動することができます。
$ rails server
これでサーバーが起動。
http://localhost:3000/
ここで、確認出来る。
control + c
で終了出来る。
MVC
この流れになっているよう。
(画像は引用)
Gitによるバージョン管理
ここは飛ばそうか悩んだけれど、この後にherokuにアップする流れだったので、
ここで管理しておくことにした。
Gitについて詳しくは以下参照のこと、と。
Pro Git
リポジトリを作成。
$ git init
たとえば、Railsによって作成されるログファイルは頻繁に内容が変わるので、いちいちバージョン管理に更新させたくありません。
railsコマンドを実行した時にRailsアプリケーションのルートディレクトリに.gitignoreファイルが作成されていますしかし、以下のリストの方がさらに便利で、セキュリティ上も有利なのでお勧めです。この.gitignoreでは、Railsドキュメントファイル、VimやEmacsのスワップファイル、そしてOS Xユーザーにはお馴染みの、あのいまいましい.DS_Storeディレクトリ (MacのFinder操作で作成される隠しディレクトリ) も管理対象から除外されます。
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
# Ignore other unneeded files.
doc/
*.swp
*~
.project
.DS_Store
.idea
.secret
で、追加して、コミットする。
$ git add .
$ git commit -m "Initialize repository"
GitHub
githubアカウントに追加する。
$ git remote add origin https://github.com/USER-NAME/railstutorial.git
$ git push -u origin master
コミットメッセージは現在形で書くようにしましょう。
そのコミットが「何をしたのか」と履歴スタイルで書くよりも「何をする」ためのものなのかを書く方が、後から見返したときにわかりやすくなります。大抵のシステムではgit pushを実行するときにorigin masterを省略できます。
Heroku
HerokuではPostgreSQLデータベースを使用します
Gemfile
に本番用の設定を追記する。
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
Gemfileを更新したので、installしておく。
$ bundle install --without production
—without productionオプションを追加すると、 本番用のgem (この場合はpgとrails_12factor) はローカルの環境にはインストールされません。
このコマンドを実行するのは、後の本番環境に備えてGemfile.lockを更新し、pg gemとrails_12factor gem、Rubyバージョンの指定を含めておく必要があるためです。
herokuのアプリを作成して、プッシュして、デプロイ。
$ heroku create rails-myfirstapp
$ git push heroku master
以下に作成した。
http://rails-myfirstapp.herokuapp.com/
エラーがでてる!と思いきや、仕様のよう。
残念ながら、Rails 4.0では技術的な理由によりエラーページが表示されます。Rails 4.0のデフォルトページはHerokuでは表示できません。サンプルアプリケーションの一環として、ルートへのルーティングを追加すればこのエラーは解消しますのでご安心ください。
これでようやく開発環境が一通り整った、という事になる。
チュートリアルサイトの冒頭にあった言葉が身にしみる。。。
本書の第1章は、さしずめロースクールで言うところの「淘汰期間」(訳注: そこで生き残れるかどうかを選別する期間) のようなものである。本章で開発環境の構築に成功できた人ならば、最後までやり通すことは難しくありません。 —Bob Cavezza (Railsチュートリアル読者)