Ruby on Rails と Line bot と heroku で Todoアプリ | Appleメモログ

Ruby on Rails と Line bot と heroku で Todoアプリ

Railsの基礎を学ぶ

業務ではJavaのフレームワークを使っているため、Railsは初学者も初学者。ぜんぜんわかっていません。

そこでRailsの簡単な基礎から学びたいと思い本を探していました。

しかし、高い。。。。

これ1冊でOK!みたいな本はたいてい3,000円以上しますね。。。正直webに情報はたくさん転がっているし、Progateのように無料で学べるサービスもあるので今一歩購入に踏み出せず、、、

そんな中以前に登録したkindle unlimitedがまだ契約中であることに気づきました。たしかAngularの基礎的な本を読みたくて契約したんだった。(結局読んでない)

ここぞとばかりにボリューム小さめのRails初学者向けの本を探しました。

Rails + Linebot + heroku で Todoアプリを作る本

こちらを読んでみることにしました。

LINEボットでTODOアプリを作ろう!ー Ruby on Railsで体験するWebアプリ作成


最近なぜかLine bot作りにハマってたりでちょうどいいかなと思い、こちらを選びました。ある程度流れ分かってるからすぐにできそうだし。

内容としては、railsプロジェクトの立ち上げからMVCの役割や実際の作り方、routesやDB周りの設定の仕方など、基礎的なものとなっていました。

基本的にはなんとなく知っているような内容ではあったのですが、そういえばbootstrapやjQueryをまだrailsでは使ったことなく、今回初めて使いました。(jqueryはインストールのみでこの本では使っていない)

scssも初めて使ったかな?入れ子にできるとかでlessと似てるなーというだけの認識。
あとで詳しく調べます。

アプリ自体は簡単だが・・・

作成するTODOアプリはかなり簡単なものでした。

一番私が慣れているJavaとそのフレームワークを使えば自力で作成できそうなもの。しかし、railsとなるとちょっとよくわからないところもありました。

たぶんこれはRubyがよくわかってない。書き方とかJavaと違うんだもの。動的型付けだし。

Rubyもあとでprogateとかやります。前やった気がするんだけどな。忘れた。

あとはerbがちょっとめんどくさいですね。<%= %>みたいなやつ。
vscodeも最適化できていないから書くのがめんどい状況です。あとでやらねば。

いじったこと

mysql→postgresqlへ変更

最初 rails new todo-app -d mysql でプロジェクトを立ち上げたのですが、herokuへデプロイする際、mysqlだとクレカ登録とかめんどくさそうだったため、postgresqlに変更しました。

プロジェクトの途中で変更するのは初でしたが、GemFileとdatabase.yml変えてbundle installしてrake db:create, rake db:migrate といつもの手順やればOK。

こんなに簡単に変更できるのですね!

mysqlは勢いで使っているとsyntax errorがよく出るしもうあんまり使いたくない。posgreでいいかな

herokuへデプロイもエラーが出る

herokuへデプロイしアクセスしてみると、application errorになりました。

heroku logs –tail で確認すると、なんとなくいつも見るログが出てる、、、routeの設定かな、dbのmigrateミスかな、linebotの通信ミスかななどなど。

これまでの思い当たるものを試してみました。しかし解決せず。。。

そこで、heorkuのコンソールで rails c を試してみると、コントローラでエラーが出ているのが分かりました。単純なエラーでログ見ればすぐ解決できるようなもの。

rails c を実行するのが遅れ、時間がかかってしまいました。

今後はrails + herokuの場合は、heroku logs –tail と rails c でログを追ってエラー解決していきたいです。

まとめ

このような感じで、仕事終わりの時間でちょちょっと簡単な本一冊を読んでみたというお話でした。

天気予報bot的なのも作っていたおかげで一通りの流れとかデプロイとかはスムーズにいったかなという印象。

課題としては、Rubyがそもそもよくわかっていないこと、erbの書き方を学ぶことなどですかね。まだまだあるけど、段階的に学習していきます。

もう寝なければなので雑な記事です。せっかく1日で読んだし、アウトプットはしなければということで。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする