Ruby on Railsでブログ作成(4) - gitでrailsのソースを管理する

プログラミング、サーバー、ネットワーク、IT用語、ハマったときのトラブルシューティングなど様々なIT関連の話題をひたすら書いていく技術ブログです。

2017年2月18日土曜日

Ruby on Railsでブログ作成(4) - gitでrailsのソースを管理する


現在webrickサーバーを立ち上げて開発環境を確認すると下記のようにwelcome aboardのページになっていると思います。通常ドメインだけでトップページが表示されるべきなので、前回までに作ったhomeページをドメインだけで表示できるようにします。


現在route.rbの設定は

get 'pages/home', to: 'pages#home'
get 'pages/about', to: 'pages#about'

のようになっていると思いますので、これを下記のように変更します。すると開発環境のドメインだけでhomeページが表示されるはずです。

root 'pages#home'
get 'pages/about', to: 'pages#about'

しかしまた問題が起こります。aboutのリンクをクリックするとNameError in Pages#aboutというエラーが起きます。これは先程、homeページをrootにしたためパスが変わってしまったのです。ですので、現在pages_home_pathが存在しないのです。これを修正するにはrake routesでprefixを確認してみましょう。homeページのprefixはrootになっているはずです。これに従いroot_pathを設定しましょう。そしてついでにaboutページもdomain/aboutで表示させたいのでroute.rbを

root 'pages#home'
get 'about', to: 'pages#about'

と設定して、homeページのlink_toを

<%= link_to 'about', about_path %>

と変更しましょう。そうするとhomeページはドメインのみで表示され、aboutページはhttp://domain/aboutで表示されます。

cloud9でgitを使ってみる

このシリーズの2回目の記事で紹介したcloud9で開発を進めていれば既にgitがインストールされています。gitに関してはまた別で記事を書こうと思いますので詳しい説明はしません。確認するには

git --version

と打ちましょう。すると「git version 2.10.2」のようにバージョンが表示されるはずです(バージョンは時期によって変わる可能性あり)。そしてユーザー名とメールアドレスを設定します。

git config --global user.name "taro"
niits:~/workspace $ git config --global user.email "xxxx@gmail.com"

そして確認コマンド。ユーザー名とメールアドレスが先程の値になっていればOKです。
git config --list

次にRailsの一番上のディレクトリでgit initをします。cloud9を使用していれば/home/ubuntu/workspaceのディレクトリです。そしてll(アルファベットのLの小文字2回)と打ってみてください。.gitが作られていればOKです。

今はまだソースはgitの管理下にはありません。gitの管理下に置いてみましょう。手順は以下の通りです。

.gitのディレクトリかその配下で

1.git statusで状況確認できます。.git配下のすべてのディレクトリが赤くなっていると思います。
2.git add -Aでgitに追加する準備をします。再度git statusをすると緑色になっていると思います。
3.git commit -m '何をしたかのメッセージ(例:修正目的など)'。例えば今回の場合は「Railsアプリ作成。homeページとaboutページ作成」という感じで良いでしょう。
4.再度git statusをすると「On branch master nothing to commit, working tree clean」と出てきたらOKです。

gitの管理下に置きたくない場合などは.gitignoreファイルがあるのでそちらに追記するとgit管理されなくなります。

gitで管理されるメリット

gitで管理するメリットは、commitしておけば誤ってファイルを消したりしたときにいつでも元に戻せることです。例えば大事なconfigディレクトリを消してみましょう。/home/ubuntu/workspaceのディレクトリから

rm -rf config

と打ってみましょう。configファイル以下が全て消えてしまいます。ですので、サーバーも起動できませんし、画面もエラーになります。プログラムを開発しているといつか起こりうることです。このような場合gitで管理していると簡単に元に戻すことができます。現在、git statusをすると赤くdelete ...のような感じで「削除されました」と表示されます。これを修正するには

git checkout .

このコマンドを打つと先程commitした状態まで戻ります。configファイルが元に戻っているはずですので、サーバーも起動できますし、画面も表示されます。

githubにpushしてみる

https://github.com/

ソース管理にはgithubを使用します。public(githubにアップロードしたソースを誰でも見れる状態)は無料で使用できますので、アカウントがない方はサインアップをお願いします。1点注意なのはメール承認があるので、メールアドレスランは有効なアドレスを入れてください。アカウントを作成したら、new repositoryボタンからblogというリポジトリを作成しましょう。

次にgithubにsshキーを登録します。cat ~/.ssh/id_rsa.pubとコマンドを打つとキーが表示されます。そしてblogのリポシトリの上部にあるsettingをクリックします。


開いたページの左側にdeploy keysというボタンがあるのでクリック。そしてadd deploy keyボタンををクリック。titleは分かりやすい名前をつける。keyは先程コピーした長いキーをペイストします。Allow write accessにチェックボックスをつけてadd keyボタンをクリックすれば設定されるはずです。

ここまで出来たら、githubのremote先の設定をします。既にリポジトリを作成していればgit remote add origin https://github.com/~のように書いてあると思います。これはどのリポジトリで管理するかを登録しています。git remote -vで設定された情報を確認できます。

確認できたらgit push -u origin masterを実行します。ユーザー名とパスワードを聞かれるので、githubのユーザ名(git config --listで確認できます)とgithubのパスワードを入力します。成功したらgithubにpushができてソースコードがアップロードされます。

これがgithubの基本的な流れです。次の記事ではherokuにデプロイしたいと思います。

◯「Ruby on Railsでブログ作成(5) - Herokuにデプロイ」の記事はこちら
◯「Ruby on Railsでブログ作成」シリーズの記事一覧はこちら



最近の投稿