[勉強] 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/
ここで、確認出来る。
rails server

control + cで終了出来る。

MVC

この流れになっているよう。
(画像は引用)

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チュートリアル読者)

   このエントリーをはてなブックマークに追加