tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【rails】ruby on rails チュートリアルでrailsを始めるメモ - 1章 - macでrvmからのrailsインストールからwebアプリ作成してherokuにあげるまで

はじめに

いまさらながらちゃんとrailsを勉強しようと思い立ったのでメモ。

この記事は下記チュートリアルになぞらえながら書いたメモ(ほぼまんま)です

チュートリアル1章の構成

このチュートリアルの1章は無理やり前半後半でわけるとこんな感じです。

  • 前半 : railsのインストール
  • 後半 : アプリケーションの作成

チュートリアルのまんまではあるのですが、チュートリアルは非常によくできてる分長いのであとであとで見返す手順用になるようにポイントを書いてます。
とりあえずここに書いたメモだけコマンド打てばおおよそ動くかと。

アジェンダ

---- 前半 ----
1. rvmインストール
2. rubyをインストールする
3. gemsetを作成する
4. gemの更新
5. railsのインストール
---- 後半 ----
6. アプリケーションを作成してみる
7. Bundlerでgemのインストール
8. rails serverを起動する
9. gitでバージョン管理
10. gitでbranch管理してみる
11. Herokuのセットアップ

1. rvmインストール

rvmとは

参考サイトから引用しますがこんな感じ

RVMはRuby Version Managerの略で、
複数Ruby処理系をインストール、共存させることができるツール
後述するgemとは違い、ruby本体に付属せずbashがあれば動くもの。

インストール
$ curl -L https://get.rvm.io | bash -s

$ rvm -v
rvm 1.26.11 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
補足

rvmをいれるとメッセージでこんな感じで言われるので素直に実行しておきましょう。
もしくは.bashrcに書いちゃっても良いですね。

$ curl -L https://get.rvm.io | bash -s
・・・省略・・・
  * WARNING: You have '~/.profile' file, you might want to load it,
    to do that add the following line to '/Users/tweeeety/.bash_profile':

      source ~/.profile

$ source ~/.profile
rvm最新にする
$ rvm get stable
参考

2. rubyをインストールする

rvmインストール後rubyインストールに必要な要件を調べる

$ rvm requirements

# 必要であれば入れる
$ brew install libtool openssl

# yamlも必要ななので入れる
$ brew install libyaml
homebrewが入ってない場合はいれましょう。

Mac OS XにHomebrewインストール。command line developer tools入れたり使い方メモったり(install、update、upgradeなど)

rubyのインストール
$ rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/usr
補足

自分の場合はrubyやgemはすでに入っていたのですが、
rvmで入れることでバージョンが切り替えられるようになりました。
rvmをインストールする前とあとだとgemのパスはこんな感じになります。

# rvmインストール前に確認
$ which gem
/usr/bin/gem

# rvmでインストール後に確認
$ which gem
/Users/tweeeety/.rvm/rubies/ruby-2.0.0-p643/bin/gem

3. gemsetを作成する

gemsetとは

gemの組合せを管理できるツール
一連のgemを自己完結的にまとめたgemsetというものを作成してバージョンを使い分けるのが便利。 デフォルトではglobalというgemsetが用意されている。

gemsest作成
# 一応この状態で確認
$ rvm gemset list

gemsets for system (found in /Users/tweeeety/.rvm/gems/system)
=> (default)
   *

# gemset作成
$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default

# gemset作成後に確認
$rvm gemset list

gemsets for ruby-2.0.0-p643 (found in /Users/tweeeety/.rvm/gems/ruby-2.0.0-p643)
   (default)
   global
=> railstutorial_rails_4_0
参考

gemsetについては下記が参考になりました。

4. gemの更新

gemのバージョンを固定にしてupdateする

$ gem update --system 2.0.3

# gemがドキュメントを作成しないようにする
$ vi ~/.gemrc
---- vi追記 ----
install: --no-rdoc --no-ri
update:  --no-rdoc --no-ri
----------------

5. railsのインストール

# 一応確認。まだ入れてないので当然の結果
$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

# インストール
$ gem install rails --version 4.0.5

# 確認
$ rails -v
Rails 4.0.5

6. アプリケーションを作成してみる

アプリケーションの作成
# versionを確認して4.0.5であることを確認
$ rails --version
Rails 4.0.5

# 今後複数のプロジェクトを格納するディレクトリを作成
$ mkdir ~/rails_projects

# rails new first_app
      create  
      create  README.rdoc
      create  Rakefile
・・・省略・・・
      create  vendor/assets/stylesheets/.keep
         run  bundle install
Fetching gem metadata from https://rubygems.org/............
・・・省略・・・
<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!

途中でrun bundle installが実行されていることに注目。

railsプロジェクトディレクトリ構成

こちらもチュートリアルのまんまですが自分のためにもメモ

# 作成したプロジェクトディレクトリの確認
$ ls
first_app

# 作成したプロジェクトディレクトリ構成の展開とメモ
$ tree -d -L 2 first_app
first_app
├── Gemfile          gemの定義
├── Gemfile.lock     gemリスト
├── README.rdoc      アプリケーションの説明ファイル
├── Rakefile         rakeコマンドで使用可能なタスク
├── app              主要なアプリケーションコード(モデル、ビュー、コントローラ、ヘルパー)
│   ├── assets       アセット類(css、js、画像、etc)
│   ├── controllers
│   ├── helpers
│   ├── mailers
│   ├── models
│   └── views
├── bin              バイナリ実行可能ファイル
├── config           設定ファイル
│   ├── environments
│   ├── initializers
│   └── locales
├── config.ru
├── db               データベース関連ファイル
├── lib              ライブラリ
│   ├── assets       ライブラリアセット(css、js、画像、etc)
│   └── tasks
├── log              ログ
├── public           公開データ(エラーページ)
├── test             testコード(specがあるので使用しない)
│   ├── controllers
│   ├── fixtures
│   ├── helpers
│   ├── integration
│   ├── mailers
│   └── models
├── tmp              cacheなどの一時ファイル
│   └── cache
└── vendor           サードパーティプラグインやgemのアセット(css、js、画像、etc)
    └── assets

7. Bundlerでgemのインストール

Bundlerとは

あとに載せる参考サイトから引用します

Railsアプリケーションに必要となるGemパッケージの種類やバージョンを管理し、
複数のPCで必要なGemパッケージをインストールする仕組みを提供してくれるやつ

Bundlerでgemをインストールする
$ pwd
/Users/tweeeety/rails_projects/first_app

# もともとのGemfileをbuckupしておく
$ mv Gemfile Gemfile.bk

# チュートリアルの通りにGemfile新規作成
$ vi Gemfile
---- vi ----
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.5'

group :development do
  gem 'sqlite3', '1.3.8'
end

gem 'sass-rails', '4.0.5'
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
------------

# bundleでupdate & install
$ bundle update
$ bundle install
参考

Gemfileの記述方法はチュートリアルを読むとわかりやすいです。
また他の記事としてこちらが参考になりました

8. rails serverを起動する

ここまでくるとようやく確認らしい確認ができます。
ローカルWebサーバーを起動するコマンドが同梱されているのでそれを実行することでローカルで確認できます。

$ rails server
=> Booting WEBrick
=> Rails 4.0.5 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-05-24 21:00:58] INFO  WEBrick 1.3.1
[2015-05-24 21:00:58] INFO  ruby 2.0.0 (2015-02-25) [x86_64-darwin14.1.0]
[2015-05-24 21:00:58] INFO  WEBrick::HTTPServer#start: pid=71111 port=3000


Started GET "/" for 127.0.0.1 at 2015-05-24 21:01:16 +0900
Processing by Rails::WelcomeController#index as HTML
  Rendered /Users/tweeeety/.rvm/gems/ruby-2.0.0-p643/gems/railties-4.0.5/lib/rails/templates/rails/welcome/index.html.erb (2.8ms)
Completed 200 OK in 15ms (Views: 14.4ms | ActiveRecord: 0.0ms)

ターミナルにこんな感じに表示されるのでブラウザでlocalhost:3000にアクセスすると起動しているのが確認できます。

f:id:tweeeety:20150525033139p:plain

9. gitでバージョン管理

チュートリアルではグローバルの設定やらから行ってましたが、
すでにアカウントは持ってる人も多いと思うのですでに持ってる前提で行いました。

.ignoreファイル追記
# すでにある.gitignoreに追記
$ vi ~/rails_projects/first_app/.gitignore
---- vi追記 ----
# Ignore other unneeded files.
doc/
*.swp
*~
.project
.DS_Store
.idea
.secret
----------------
git管理する
githubリポジトリを作成

これはgithub上でリポジトリを新規作成します。
書くまでもないので飛ばしますが、初めての人はこのへんを参考に。

first_appディレクトリ配下をgit管理する
$ cd ~/rails_projects/first_app/

# このディレクトリ配下用のgit user情報を書いておく
$ vi .git
---- vi追記 ----
[user]
  name = tweeeety
  email = tweeeety@tweeeety.com
----------------

$ git init

$ git add .

$ git commit -m "Initialize repository" 

$ git remote add origin git@github.com:tweeeety/rails-first_app.git

$ git push -u origin master

10. gitでbranch管理してみる

# branchを作ってcheckout
$ git checkout -b modify-README

# マークダウンに変更
$ git mv README.rdoc README.md

# viで中身を書き換える
$ vi README.md
---- vi ----
# Ruby on Rails チュートリアル:サンプルアプリケーション

This is the first application for the
[*Ruby on Rails Tutorial*](http://railstutorial.jp/)
------------

# masterをcheckout
$ git checkout master

# modify-READMEブランチをmasterにマージ
$ git merge modify-README

# 作業用ブランチを削除
$ git branch -d modify-README

11. Herokuのセットアップ

Herokuとは

PaaSサービスのうちの1つ。
webアプリケーションのホスティングサービス。

参考 PaaSの基礎知識とHerokuで開発を始める準備

参考

ちょっと流れがそれますがherokuを最初から試してみたいときはこれを参考にしてみてください。

ruby環境を今回のようなチュートリアルから始めた場合は
rvenbやbundleはすでに入ってしまっているので
記事中の4. Toolbeltをインストールからが参考になるかと思います。

下記のheroku loginをするためにToolbeltが必要です。

Heroku用にGemfileに追記
$ cd ~/rails_projects/first_app

$ vi Gemfile
---- vi追記 ----
group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end
---------------

# --without productionオプションを追加して本番用のgem以外をインストール
$ bundle install --without production
herokuにアプリケーションの作成
$ heroku login

$ cd ~/rails_projects/first_app

# herokuアプリを作成。指定無しcreateなので名前は勝手に作成される
$ heroku create
Creating gentle-refuge-8797... done, stack is cedar-14
https://gentle-refuge-8797.herokuapp.com/ | https://git.heroku.com/gentle-refuge-8797.git
・・・省略・・・

$ git push heroku master

$ heroku open

heroku createでは名前を勝手に作成してくれるので
ターミナルでも表示されてる通り自分の場合はgentle-refuge-8797になってます。

また、チュートリアルにも書いてありますが、このままheroku openしてもエラーのような画面が表示されます。

これだと不安なので取り急ぎで動いてるか確認したいときは
~/rails_projects/first_app/public/index.htmlを作成してgit push heroku masterしなおせば
作成したindex.htmlが表示されるかと思います。

$ cd ~/rails_projects/first_app

$ vi public/index.html
---- vi ----
<html>
<head>
<title>rails - heroku sample</title>
</head>
<body>
rails - heroku sample
</body>
</html>
------------

$ git add public/index.html

$ git commit -m 'add file'

$ git push heroku master

$ heroku open

これで画面にrails - heroku sampleと表示されます

まとめ

最終的に自前のindex.htmlを表示しただけなので、
railsそのもののを体感した感じはないですがチュートリアルの通りなのでヨシということで。
enjoy\(^o^)/