Rails

RailsTutorial 1日目

More than 3 years have passed since last update.

Ruby on Rails tutorial http://railstutorial.jp/ より、「第1章ゼロからデプロイまで


Ruby, RubyGems, Rails インストール


rbenv

Rubyのバージョン管理にrbenvを利用する。

rbenv install —list

インストール可能なRubyのバージョン表示

rbenv install XXX

指定バージョンのRubyインストール

rbenv versions

インストール済みのRubyバージョンを表示(global)

rbenv version

そのディレクトリで有効なRubyバージョンを表示

rbenv global XXX

マシン全体で使用するRubyのバージョンを指定

rbenv local XXX

該当ディレクトリで使用するRubyのバージョンを指定


RubyGems


RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。

http://ja.wikipedia.org/wiki/RubyGems


gem update --system 2.0.3

RubyGemsのアップデート

gem update --systemだけでも大丈夫。


Rails

gem install rails --version XXX

railsインストール。version指定しないと最新版が入る。

Railsのインストールにすごく時間がかかるのは、riとrdocというドキュメントが作成されるから。.gemrcを作り、その中に

install: --no-rdoc --no-ri

update: --no-rdoc --no-ri

を書いておくと、これらの自動生成を抑制できる。

ちょっぱや!


Rails new


new

rails -v Railsバージョン確認

rails new APPNAME 新規アプリケーション作成

rails _XXX_ new APPNAME バージョンを指定して新規アプリケーションを作成


bundler, Gemfile

bundlerでアプリケーションに必要なgemをもってくる。

APPNAME/Gemfile に必要なgemが書かれている


Gemfileでのいろんな指定の方法

group :development do

gem 'sqlite3', '1.3.8'
end

sqlite3 gemの1.3.8をdevelopment環境でのみ使用するための指定。

gem 'uglifier', '>= 1.3.0'

1.3.0以上の最新版がインストールされる

gem 'coffee-rails', '~> 4.0.0'

4.0.X系のアップグレードはインストールされるが、4.1へのアップグレードは行われない。


Gemfileを更新した後

bundle update

bundle install


bundle updateとinstallの違い

Gemfile.lockが関係してくる。Gemfile.lockは「実際にインストールされたgemセット」のスナップショット+依存関係情報が記載されているファイル。(http://techracho.bpsinc.jp/hachi8833/2014_02_07/15390)

bundle updateすると、Gemfile.lockを無視してbundle installが行われ、その後Gemfile.lockが更新(上書きされる)。

なんでbundle updateが悪いのかまだよくわからない。チュートリアルでupdate & installと書いてあるので、今はそれに従っておく。

bundle installだと、Gemfile.lockとGemfileの差分をみて、Gemfile.lockに書かれているもの、Gemfileに書かれていないものをインストールする

bundle updateだと、Gemfileに沿ってインストールを行い、Gemfile.lockを更新する。


rails server

開発用のローカルWebサーバー起動

rails server 127.0.0.1(localhost):3000にアクセスできるようになるよ!


MVCモデルについて

      モデルがデータベースと通信             

           ↓ ↑
ブラウザ → コントローラでリクエストを処理 → viewを生成して
     ← viewで生成されたものをブラウザに返す ← コントローラに渡す

     


heroku

bundle install --without production


heroku toolbelt

https://toolbelt.heroku.com/

heroku loginでセットアップ

heroku create

herokuにrailsアプリケーション専用のサブドメインが作成される

デプロイすることでWebページを表示することができる

リモートレポジトリ?(git remote -v)にherokuが追加される

git push heroku master

デプロイ!!

heroku open

デプロイ先のページがプラウザで表示される