できる、は楽しい。
今日は強い雨、弱い雨、晴れが行ったり来たり。彼女が福岡に来てくれたので一緒に勉強。仕事しながら学ぶのは本当にすごい。僕はそれから逃げてしまった。…この話はまたいつか。笑
今日の目次も以下になります。
1.簡単日記
彼女と話していて「新生活、何が大変?」って聞かれて考えた挙げ句僕が答えたのは
「自炊でお腹を壊さないかどうか」
これわかる人いませんかね。笑 別に腐ってるものを食べたり衛生的に良くないわけじゃないですよ!!笑
外食で食べてたら衛生面とかもそれなりに保証されてるから安心。でも自炊すると食材の保管方法が実は良くなかったりしたらそれでお腹壊すリスクがあるやん?
って言ったら「めっちゃお腹繊細やん」って言われた。まだ福岡に来てから1回しか体調崩してないからな!!まだ繊細かどうかわからん!ってか繊細かどうかとかあまり意識していなかったし特にそういうふうに感じたことがなかった。
はて、残る福岡での生活で僕はあと何回お腹を壊すのだろうか。
2.今日の学び
今日はミニアプリの基本機能の実装と見た目を完成させました。2日間かかったな。。。新しい知識も使ったから仕方がない!その分めっちゃ勉強になりました!ありがとうミニアプリ笑
◆#Rails params.require(:model).permit(:column)の意味
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
form_withで飛んできたparamsを仕分ける時に使うメソッド。
・飛んできたハッシュが二重構造になっている為
・requireで中のmodel名のhashを指定して
・permitで中のhashに保存されているキーを指定。
こういうことね.#プログラミング初心者
◆#Rails 命名規則
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
モデル名…単数形、小文字始まり…tweet
モデルクラス名…単数形、大文字始まり…Tweet
テーブル名…複数形、小文字始まり…tweets
コントローラ名…複数形、スネークケース…tweets
コントローラファイル名…複数形、スネークケース…tweets_controller#プログラミング初心者
◆#Rails deviseに独自のカラムを追加し表示、保存する。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
・rails g devise Userで作成されたMigrationファイルに新規カラムを追加。
・migrate後、rails g devise:viewsでviewファイル作成。
・viewのregistrationsファイルに入力フォームを追加。#プログラミング初心者
・application_controller.rbに下記strong parameterを追加してDBへ反映させる
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
before_action :confiure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: :columnname)
end#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
初めてのdevise ② -- カラムを追加してみる -- ~ やってみようカスマイズ! ~ https://t.co/JUv4ADtMpU #Qiita
◆#Rails form_withの使い方
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
from_forやfrom_tagはrails 5以降では非推奨。将来的にはform_withに置き換えられるだろう。従ってform_withを使用。込み込み1行でまとめると
<%= form_with(model: @modelname, url: rooting_path, method: :httpmethod, local:true) do |f| %>#プログラミング初心者
・local:trueの意味は「Ajax(Remote)による送信をしない」という意味。HTMLのフォームとして送信する場合は記載必要。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
⇛これ知らなくてエラー出まくった…
・受け取るコントローラにストロングパラメータ必要、記載の仕方注意!
⇛送信されるparamsが二重hashか要確認!#プログラミング初心者
・送信されるparamsが二重になってるかどうかは初心者の僕にはぱっと見わからなかったのでストロングパラメータの直前にbinding.pryを使用してターミナルで確認した。binding.pry超便利ですね。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
今回サーバー側はここの試行錯誤が一番苦労した。
エラー元が見つけれやんかった。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
【Rails入門説明書】form_withについて解説 https://t.co/ExDHWxDRAa
「【Rails】何故、formヘルパーに"local: true"を入れる?」 https://t.co/f4unhEt2Tw #teratail#プログラミング初心者
◆#Rails でbinding.pryを使用する。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
デバッグツールのpryを使うには下記gemのインストールが必要。
pry-rails…binding.pryをソース・コード中に打つとブレークポイントになって処理を止めることができる。
pry-byebug…binding.ptyで止めたところからステップ実行ができる。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
Rails で Pry を使う https://t.co/JYsHPi31ML #Qiita
◆#Rails updated_atを日本時間で表示させる。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
configフォルダ内のapplecation.rbに
config.time_zone = 'Tokyo'
と追記することで表示可能だが、このままだと+0900
となる為表示を変更。
updated_at.strftime("%Y-%m-%d %H:%M")
と記載したら2019-07-21 22:53と表示される。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
【rails】updated_atを日本時間で表示する https://t.co/Egjny7k8Oz #Qiita
◆#Rails のtext_areaで入力した文章を改行もそのまま反映、表示させる方法。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
<%= @tweet.text %>
というところを
<%= simple_format(@tweet.text) %>
と記述すると改行も反映される。#プログラミング初心者
◆#Rails 昇順、降順の並び替え
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
並び替えの記述の仕方は
.order(column: "DESC or ASC")
DESC…descentは降順。
ASC…ascentは昇順。
これ前にもやったんやけどうっかり忘れてた〜!復習!#プログラミング初心者
◆#CSS での見た目作成について。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
慣れ。#プログラミング初心者
◆今回の #Rails のざっくりアプリ作成手順
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
・必要なモデル、テーブルとその関係を洗い出す。
・rails newでファイル作成
・TOPのviewファイル作成
⇛全体のレイアウトの箱をイメージしながら必要な箱、文言をHTMLに記入。
⇛CSSで装飾。
・ログイン周りをdeviseで設定。#プログラミング初心者
・ユーザー目線でサイトを見て必要なページのルーティング、コントローラ、ビューを作成。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
・わからないことがあったら極力カリキュラム外を検索して実装。(支援後はカリキュラムが見れなくなる為)
あとはひたすらエラーと対話して理想像へと導く。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月21日
★掲示板アプリ作成完了。
★ライブのスポンサーの宣伝完了。
★ライブ会場との一通りのやりとり完了。
自分でものを作るのは大変だ。やはり苦労した分だけ自分の血となり肉となることを実感。今後も苦労をさけずに勉強し続けたいね。今日も一日ありがとう!#プログラミング初心者
エラーを解決して少しずつ理想の形になっていくのは楽しい。それを自分の力でもがきながら進むのが楽しい。Mか俺は。確かに追い込まれた方が燃えるタイプだ。今みたいに働いていなくて社会に貢献できない未熟さを感じているいまとか特に。
この経験は貴重だ。今後ももっとたくさん自分で作って慣れていくぞ!
3.明日やりたいこと
Chatspaceの準備は整ったので本格的な実装に入ります。あと自作アプリの続きを進めよう。
4.終わりに
今日ほどエラーに立ち向かった日はなかったな。これまではカリキュラムにある内容をやっていればエラーは基本的に出なかったしエラー解決問題もなんだかんだ問題の為の原因がちゃんとあるからそれを考えたら特に難しいとは感じなかったけど!!!!けど!!!!自分で作るサービスのエラーは何がなんだか!!!いうてエラー解決問題と一緒なんやけどね!!!こんなエラー見たことない!ってやつ出てくるしなんでこうなんの?!っていままで起きたことないところでエラー出るから勉強になる。
しっかし今日も一日で成長したわ〜笑
明日からまた一週間が始まります。働かれる方も勉強する方も充実させた一週間のスタートを切りましょう!ありがとうございました^^