Rails Tutorial、始めました【1章】
超今さらですが、Rails Tutorial始めました!
理由は、webアプリを作れるプログラミングスキルが欲しいからです。
まあ仕事でweb方面の専門じゃなくても、やっぱ作れるようになりたいっすよね。せっかくなら。webサービスの個人開発とか憧れますよね。
業務ではpython使ってるのでDjangoでも良かったんですが、ずっとpythonだと飽きるんですよね。だってpythonって、だれが書いても綺麗なコードになるじゃないっすかw
だけどrubyって、書く人によって癖が出るみたいなんですよ。なにそれ、めっちゃ面白いじゃん。
ならやりましょう、やってみましょうよ!ってことで昨日からスタートしました。
てことで、1章ごとに感想をまとめたいと思います。
もちろん今日は、 第1章ゼロからデプロイまで です!
1章 ゼロからデプロイまで
はじめに
Rails Tutorialについてや、そもそもRailsとは?といったことまで説明がありました。
このチュートリアルでは、全部で3つのアプリケーションを作るんですね。読んでるだけでワクワクしてきました。
そしてここで知りましたが、全部で14章あるんですね。ヤベェ、ヤベェよ…
さっそく動かす
まず作るのは、「Hello World!」を表示するだけのアプリです。まあ最初なんでね。
そしてチュートリアルでは、環境差分による問題を少しでも無くすために、AWS CLoud9(クラウドの統合IDE)を使って開発するみたいです。
甘ぇ、甘ぇよ!私は強く拳を握り、ローカルに開発環境を構築しました。
そしてプロジェクト作成ですが、
1 |
$ rails new hello_app |
railsではこのコマンドを打つだけで、自動でライブラリのダウンロードから、Webアプリケーションに必要なディレクトリやファイルの作成が自動で行われます。こりゃあすげぇよ…
ローカルサーバーを起動するのもこれだけです。
1 |
$ rails server |
これでlocal:host:3000にアクセスしてみると、次の画面が表示されます。
もうこれ、Webアプリケーションですよね…?
MVC
RailsはMVCという構造を取っていて、Model,View,Controllerを駆使してWebアプリケーションを作ります。
Contorollerにメソッドを作るだけで、すぐにHello,Worldアプリができました!
1 2 3 4 5 6 7 8 9 10 11 |
class ApplicationController < ActionController::Base protect_from_forgery with: :exception def hello render html:"Hello World!" end def goodbye render html:"goodbye" end end |
Gitによるバージョン管理
ここでは今まで作ったものをGitリポジトリに上げるだけでした。
業務でGitを使ってる方はほとんど読み飛ばしていいんじゃないですかね?
- add → commit → push
- branch切ってmerge
やってることはこの2つだけでした。
Herokuにデプロイする
ここでついにデプロイ!
hello_appを本番環境に適用します。Herokuは使ったことないので不安ですね…
予想通り、ここでトラブル発生!Herokuにgitリポジトリをpushしようとしたらこんなエラーが…
1 2 3 |
remote:An error occurred while installing ruby-2.3.7 remote:This version of Ruby is not available on Heroku-18. The minimum supported version remote:of Ruby on the Heroku-18 stack can found at |
そんな古いバージョンのruby、このHeroku様が使えるわけねぇダルォ???
実はローカルでは1年以上前に環境構築していて、そのあと何も更新していなかった..
ということでrubyのバージョンアップしましょう。だが、またしても問題発生…
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ rbenv install -l Available versions: 2.3.7 ... (中略) 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4.0-dev ... |
おかしい、現時点でのrubyの最新安定バージョンは2.6.4のはずなのに、2.4.0までしか出てこない…
どうやらruby-buildが古いと、その時点でのrubyバージョンまでしか出てこないみたいです。
てことでupgradeを試みます。
1 2 |
$ brew upgrade ruby-build Error:ruby-build 20190828 already installed |
もうやだ、この戦い。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ $ cd /Users/xxxxx/.rbenv/plugins/ruby-build $ git pull remote: Counting objects: 4769, done. remote: Compressing objects: 100% (25/25), done. remote: Total 4769 (delta 946), reused 961 (delta 940), pack-reused 3800 Receiving objects: 100% (4769/4769), 1.15 MiB | 1.53 MiB/s, done. Resolving deltas: 100% (3549/3549), completed with 119 local objects. From https://github.com/sstephenson/ruby-build e1811b9..01e7b7b master -> origin/master [new branch] end-to-support-old-rbx -> origin/end-to-support-old-rbx [new tag] v20141027 -> v20141027 [new tag] v20141028 -> v20141028 [new tag] v20141113 -> v20141113 [new tag] v20141128 -> v20141128 …. |
直接Gitからpullしたらupgradeできました。さてherokuにデプロイするか。
1 2 3 |
remote:An error occurred while installing ruby-2.3.7 remote:This version of Ruby is not available on Heroku-18. The minimum supported version remote:of Ruby on the Heroku-18 stack can found at |
バージョンが変わってない、なぜじゃーーー!!!
試しにrubyのパスを調べてみると…
1 2 |
$ which ruby /user/bin/ruby |
rbenvの方に通ってないですね。
1 2 3 4 |
$ vi ~/.bash_profile export PATH="~/.rbenv/shims:/usr/local/bin:$PATH" eval "$(rbenv init -)" $ source ~/.bash_profile |
rbenvのパスをbash_profileに追加し、変更を適用しました。すると…
1 2 3 |
$ which ruby /Users/user_name/.rbenv/shims/ruby $ ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18] |
ようやくrubyのバージョンアップができました!第1章からここまで苦労するとは思ってなかった…
- bundle installでGemfile作り直し
- gitリポジトリに再度push
- git push heroku master
これでようやくHerokuにpushできました!heroku createコマンドで作ったURLへアクセスすると…
無事本番環境でもHello worldできました!文字が小さくてすまん^^;
感想
Rails Tutorial 1章をやってみましたが、まさかここまでつまづくとは…
Herokuについて全く理解してなかったと、ローカル環境でやろうとしたのが原因でしたね。まあ今後もローカル環境でやりますが。
でもHerokuを初めて使ってみましたが、めっちゃ便利ですね、これ。pushするだけで本番環境に適用できるとか、素晴らしすぎだろJK!
あと13章あるので、先が思いやられるtrs君であった。
次回、2章へ続く!