Railsチュートリアル第4版やってみて、Twitterの下位互換サービスできた【Ruby, エンジニア】
Rails学習のためのRuby on Railsチュートリアル。その第4版(Rails5.0対応)をやってみたので、その時に詰まったところと解決方法をまとめておきます。
Railsチュートリアルやった経緯
Rails5.0がそれまでのバージョンと何が違うのか知りたいと思っていたところで、安川さんのこちらのTweet。
#Railsチュートリアル の第4版(5.0対応)をリリースしました! 📕✨ https://t.co/sqmthdzreD
— Yohei Yasukawa (@yasulab) 2016年11月24日
計34時間の解説動画も同時販売しており、そちらのサンプル動画では第4版の改善点を説明していまので是非!😸 https://t.co/J9X3I7pXWx
を拝見して、久しぶりに Railsチュートリアルやろうとやってみました。
30時間くらいでRailsチュートリアルを一通りやって、その後に9時間くらい使って「アイデアルーム」というTwitterの下位互換サービスをつくりました。
詰まったところと解決方法
詰まったところとその解決方法をメモっておきます。
・第11章アカウント有効化のエラー
【エラー内容】
アカウント有効化をしようとして、「SendGrid」をアドオンしようにも、アドオンができない。ローカル環境ではActivationのメールが届くけど本番環境では届かない。
【解決方法】
「そもそもアカウント有効化必要になるようなサービス創らねえ!」と見切りをつけて、実装しませんでした。パスワード再設定も同じ文脈でとばしました。また挑戦しよ…。
・「heroku rollback」の後のgit push heroku不能
【エラー内容】
上記アカウント有効化の途中までの実装を破棄するために、「$ heroku rollback」をして、前の段階に戻った後に「$ git push heroku」ができなくなりました。
いくら変更内容をpushしようとしても
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://git.heroku.com/stormy-basin-95702.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ていうエラーが出るんですね。
【解決方法】
$ git push heroku master --force
で、強制的にpushを行いました。エラー出ないか不安でしたが、いけました。
・Gem変更後のエラー
【エラー内容】
Gemを変更して、「$ bundle install」してページを表示しようと思ったらエラーが出て、ページが表示されない...。該当してそうなコードのどこを直してもエラーが解決されない...。
【解決方法】
一旦ローカルのサーバを閉じて、「$ rails s」でサーバを立ち上で直したらページ表示されました。
そもそもGemの変更内容がローカル環境で反映されていなかったのかな。30分くらい不毛な時間を過ごしました。
まとめ
振り返ってみると、意外になんてことないエラーで時間を取られることが多かったですね。
まあ、「一度エラーした内容を二度としないようにすれば徐々に開発速度も挙がっていく」の精神でやっていこうと思います。
Railsチュートリアルは、読んでいってそのままコードを真似していったら簡単にRailsでのサービス開発を学べるので楽しいすね。
今後はJavaScriptもっと使って、もうちょい凝ったサービス創って行こうと思います。
では。