Railsを使ったポートフォリオサイトを作るためにやったこと、躓いたこと、工夫したこと等を備忘的にまとめていきます。
レビューアプリとSNS両方の性質を持つ「Revorite」というWebアプリを作っていこうと思います。
rails newの下準備
$ cd ~/projects
$ mkdir revorite
$ cd revorite
$ bundle init
アプリ用ディレクトリを作成し、bundle init
でGemfile
を生成。
こうすることでシステムのgemと分離してアプリ用のgemをbundle管理することができる。
生成されたGemfile
の# gem "rails"
のコメント(#)を以下の通り外しておく。
またバージョン指定が必要な場合ここで指定(今回はrails5.2でインストールする)
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails", '~> 5.2.4'
準備ができたら以下コマンドでRailsをインストール。bundler経由(※1)でvendor/bundle
配下にgemがインストールされる(※2)。
bundle install --path vendor/bundle
※1: bundler経由でインストールすることで、各種gemのバージョン依存問題が生じないよう、自動で調整してインストールしてくれる。
※2: --path vendor/bundle
のオプションは次回以降は不要。自動で指定されるため。
rails newを実行
$ bundle exec rails new . -B -d mysql --skip-test
bundler経由でgemをインストールした場合、rails newもbundler経由で行う必要があるので注意。
new以降のオプションは、「カレントディレクトに(.
)」「bundle install
はせず(-B
)」「データベースにはMySQLを指定し(-d mysql
)」「railsのデフォルトのテスト機能(minitest)を使わない(--skip-test
)」、を意味する。
他にも指定可能なオプションは多数あるがここでは割愛。
Gemfile
を上書きして良いか、と聞かれるのでyesを入力。
各種gemをインストール
Gemfile
にインストールする各種gemを記述。
gem 'haml-rails'
gem 'erb2haml'
gem 'font-awesome-sass'
gem 'devise'
後で追加も可能のため、何も記述しなくともOK
ここでbundle install
を実行したところ、下記エラーが発生。
Bundler could not find compatible versions for gem "sprockets":
In snapshot (Gemfile.lock):
sprockets (= 4.0.0)
In Gemfile:
sass-rails (~> 5.0) was resolved to 5.1.0, which depends on
sprockets (< 4.0, >= 2.8)
rails (>= 5.2.4.2, ~> 5.2.4) was resolved to 5.2.4.2, which depends on
sprockets-rails (>= 2.0.0) was resolved to 3.2.1, which depends on
sprockets (>= 3.0.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
Gemfile.lock
にはsprocketsは4.0.0とあるけど、sass-railsの5.1.0を使うには4未満(かつ2.8以上)じゃないとダメやぞ!ってことなんだと思う。
bundle update
を実行することでsprocketsのバージョンが自動的に3.7.2に変更され、上述のエラーは解消された。
Gitの登録
各種gemのインストールが終わったところで、Gitのローカルリポジトリを作成し、リモートリポジトリへの紐付け、プッシュまでを行う。
GitHubでリモートリポジトリは事前に作成しておくこと。
ローカルリポジトリの登録
$ git init
$ git add *
$ git commit -m "initial commit"
リモートリポジトリに紐付け、初回プッシュ
$ git remote add origin https://github.com/345dvl/revorite
$ git push origin master
これで、今回のアプリをGitで管理できるようになりました。
スクールではGitHub Desktopを使ってコミットやプッシュ、プルなど実行していましたが、今回は全てコマンドラインで実行。実務を考えるとどちらも出来た方が良いと思うので、今回のアプリ開発では可能な限りコマンドラインでGit管理していこうと思います。
いざ、起動
Rails含む各種gemのインストールが完了したため、いよいよRailsを起動
rails s
起動を確認後、Localhostに接続。
無事、Railsの初期画面が表示されました。これでアプリの土台はひとまず完成です。
記事にするとあっさりですが、これだけでも結構時間がかかりました。とりあえず環境構築を乗り越えたので一安心。
まとめ
初めてのQiita記事の投稿となりましたが、思ったより時間がかかりました…。およそ3時間ほど。
もし誤りなどありましたらコメントやTwitterでご指摘いただけると嬉しいです。この記事が他の方の参考になれば幸いです。
次はDB設計や機能の整理などを記事にできたらいいな…。
参考にさせていただいた記事
新規Railsプロジェクトの作成手順まとめ
rails new 手順書
Bundlerを使ったGem管理について
bundle install と bundle updateの違いについて