Ruby on Rails でウェブアプリを作成(準備編)

Ruby on Railsでウェブサービスを作ろうと思った動機は
1.以前Qiitaに投稿した環境情報収集ロボットから得た情報を可視化出来るウェブサービスが欲しい
2.ロボット操作が出来るウェブサービスがほしい
3.個人が持つロボットを登録してロボットの情報を共有しつつコミュニケーションが出来るSNSサービスがほしい

と色々あるからです。
gitのリポジトリ操作もRailsの勉強しながら嫌でも覚える事になりそうだったので、前回の投稿時に述べた
グループでのコード管理手法やRailsアプリ作成に必要な手順をメモしていきます。


#開発環境の整備
MacOSX 10.8を使っています。
古いOSですが特に開発において今の所困った事もありません。
では環境の整備から始めます。


##Railsをインストール

```
$ gem install rails -v 4.2.2


$ cd ~                # ホームディレクトリに移動
$ mkdir workspace     # workspaceディレクトリを作成
$ cd workspace/       # 作成したworkspaceディレクトリに移動
```

##新規Railsアプリを作成

```
$ rails _4.2.2_ new hello_app
```

これでhello_appディレクトリ配下に
各種ディクトリが作成/配置されます。

hello_app配下にGemfileというものがありますが
これがアプリが使用するgemのパッケージとバージョンを規定するものです。
hello_app配下に移動し
bundle installでgemを一括インストールします。

```
$ cd hello_app/
$ bundle install
```

##Gemfile 例
```
source 'https://rubygems.org'

gem 'rails',                '4.2.2'
gem 'sass-rails',           '5.0.2'
gem 'uglifier',             '2.5.3'
gem 'coffee-rails',         '4.1.0'
gem 'jquery-rails',         '4.0.3'
gem 'turbolinks',           '2.3.0'
gem 'jbuilder',             '2.2.3'
gem 'sdoc',                 '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end
```

##ウェブサーバーの起動
デフォルトではlocalhost:3000で起動します。

```
$ rails server
$ rails s #省略版のコマンド
```
##GITでバージョン管理

```
$ git init
$ git add -A
$ git status
$ git commit -m "Initialize repository"
$ git log
```
上記は前回の投稿の内容ですが
checkout -b "ブランチ名"　で
新しいブランチの作成と切り替えが出来ます。
git branchで現在のブランチを確認可能

```
$ git checkout -b modify-README
Switched to a new branch 'modify-README'
$ git branch
  master
* modify-README

```
masterブランチにマージしたい時は
masterブランチに切り替えしてから
git merge "Merge対象ブランチ"を使います。


```
$ git checkout master　#masterブランチに再度切り替え

Switched to branch 'master'
$ git merge modify-README
Updating 34f06b7..2c92bef
Fast forward
README.rdoc     |  243 --------------------------------------------------
README.md       |    5 +
2 files changed, 5 insertions(+), 243 deletions(-)
delete mode 100644 README.rdoc
create mode 100644 README.md
```

Merge後の不要になったブランチは git branch -d "ブランチ名"で削除出来ます。

```
$ git branch -d modify-README
Deleted branch modify-README (was 2c92bef).
```
Mergeが終わったらpushします。
pushについては前回の内容を参照の事
[git リポジトリの利用方法](http://qiita.com/manjiroukeigo/items/bf6569c35cff47492490)


参考のRuby on Railsチュートリアルを
簡略化するとこんな感じの１章です。
２章で簡易アプリを構築する解説があるのですが３章以降で同じ様な事をするので静的ページの構築から初めていきましょう。

#静的ページの構築準備

sample_appをrailsから作成します。

```
$ cd ~/workspace
$ rails _4.2.2_ new sample_app
$ cd sample_app/
```

ローカリリポジトリに
static-pagesブランチを作成しておきます。

```
$ git checkout master
$ git checkout -b static-pages
```

このsample_appで使用するGemfileはこんな感じです。

```
source 'https://rubygems.org'

gem 'rails',        '4.2.2'
gem 'sass-rails',   '5.0.2'
gem 'uglifier',     '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks',   '2.3.0'
gem 'jbuilder',     '2.2.3'
gem 'sdoc',         '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end
```

bundle でインストールし
gitのローカルリポジトリを作成しておきましょう。

```
$ bundle install --without production
```
gitのリモートリポジトリにも更新を保存しておきます。

```
$ git init
$ git add -A
$ git commit -m "Initialize repository"

#githubのリモートリポジトリ使います。セキュリティ上の問題が気になる場合はbitbucket等ご利用下さい

$ git remote add origin "github リモートリポジトリURL" 
$ git push -u origin --all # リポジトリとブランチをすべてプッシュする
```


参考：
[Ruby on Rails チュートリアル
実例を使ってRailsを学ぼう
Michael Hartl (マイケル・ハートル)](http://railstutorial.jp/chapters/modeling_users?version=4.2#sec-user_model)