英語、は楽しい。
今日は思った以上に集中しにくかったな…なんでやろか。カリキュラムと向き合っても全然頭に入ってこない感じ。だから散歩したよ。外に買い物行ったり、近所を散歩した。半年振りくらいにPokemon GOした。笑 クロバット好きなんです。
1.簡単日記
今日は近くのスーパーへ買物。お茶碗って打ってると思ったけど売ってないんですね。あと蒟蒻畑を買いました。凍らせて食べるのが好き。夏のライフハックだゎこれ。笑
明日はライブ…というか結婚式の余興で歌うからそのバンド練習。午前中2時間だけやけどその後ご飯とか行って諸々話したいな。みんな忙しいかな〜!
2.今日の学び
◆#Rails ルーティングがネストされているモデルでのform_for
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
messagesがgroupsにnestされている時、form_forの引数には親モデルinstance変数を第1引数、子モデルinstance変数を第2引数に設定必要。
例
form_for [@group, @message] do |f|
引数が1つだとnillエラーが発生。#プログラミング初心者
◆#Rails 三項演算子
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
if 条件式
true時の値
else
flase時の値
上記は三項演算子をifに用いると下記の様に記述可能。
条件式 ? true時の値 : false時の値
単純な条件ならこっちのほうがスッキリできる。#プログラミング初心者
◆#haml でeach、idを使用する時
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
hamlでeachやifなどのロジックを使用する時は先頭に「-」ハイフンをつける。
「=」を先頭につけるのは<%= %>の略。#プログラミング初心者
◆#Rails テストとは?
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
プログラムが自分の意図通りに動くか確かめること。
プロダクションコード…本番環境で実際に動かすコード
テストコード…テストを行うためのコード
RailsのテストコードはRSpecという独自の言語を使用する。
信頼性試験…より、出荷検査に似てる。#プログラミング初心者
◆#Rails テストコードの準備
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
・gem 'rspec-rails'をdevelopment, test環境下に配置してbundle install
・terminalでrails g rspec:installで基本fileを作成
・.rspecファイルに
--format documentation
を追加。これ必要。なかったらテストの結果が初学者にはまじでわからん。#プログラミング初心者
◆#Rails テスト基本構文
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
describe "hogefuga" do
it "テストの内容" do
expect( 条件 ).to マッチャ 値
end
end
上記を解説すると
describe " " do ~ end …後述するテストのまとまりの意味を" "へ記述
it "テストの内容" do ~ end …テストの内容を" "内へ記述#プログラミング初心者
expect( 条件 ).to …条件に入れた値が後述の値とマッチャな関係にあるかを記述する
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
マッチャ 値 …ここには値と等しいことを表すeqやクラスに含まれていることを表すinclude、バリデーションされればvalidなどを記載する。expectされたものを後述の値とどうするかを示す。#プログラミング初心者
Railsと英語で会話してるみたいだからテスト書くの楽しい。railsと会話してるみたい。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
でもこれってどこがいってないかを確かめるためのもので、ここでエラーになったらデバッグしないとなんですよね。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月27日
★Railsのテストの基本的な書き方。
★主催ライブの宣伝出演者2バンド紹介@twitter
★個人練習(発声、リズム、ボイパ)
今日は勉強になかなか集中できなくて気分転換に練習したり、散歩したり。そしたら一日あっという間に過ぎていった。時間を大切にしよ!#プログラミング初心者
今日は中身の実装が一段落して、テストコードの書き方について。
「テストとか必要なん?ローカルで自分で動きを確認したほうがコード書くより早いんじゃないん?」
って思ってたけどどうやらそういうわけにもいかないらしい。個人的に一番大きい理由は
他の人がファイルを見た時にちゃんと確認しているのかが確認できる。
これ大きいよね。人のコードレビューした時(まだしたことないけど)に自分で確認したかどうかはテストコードを見たらわかるもんね。これは便利だ。
もちろん、テストコードを書く理由は他にもあって、自分で確認するより早かったり確実だからとか自動化ができるからとかたくさん理由はあるみたい。今日はユーザーログイン周りをしたから、コントローラ側や総合テスト(複合した機能のテスト)を終わらせて次に進みたいな。
あと、テストコードを書く時になんのテストコードを書いてるのかとかを記述するんだけど、それがもちろん英文で。railsと英会話してるみたいで楽しかった。笑 やっぱり英語使うの楽しいな〜好きだ!
3.明日やりたいこと
テストコードの続き。非同期通信の実装にも入りたいな〜!
でも明日は練習があるからな〜…勉強時間は切り替えて集中して進めるぞ!
4.終わりに
土曜日でしたね。近所の公園では夏祭りの準備をしていました。きっと今晩と明日とかやっているんだろうな。世間の学校は夏休みですから。
今日もテストの書き方を勉強して成長したな〜!本番環境に出す前に確認するとか、スマホの出荷検査みたい!実際似てるよね。ここでだめなら対策打ってからまた確認して出す。
ということで明日も休みの人が多いだろうから休むなりなんなりで充実させましょ〜!
今日もありがとうございました(^o^)
動く、は楽しい。
やはりね、動くものを作る方が作ってる方も楽しいよね。フロント側でゴリゴリするデザイナーあってこそだけど、それらに入力したりクリックしたりしたものが出てきたりすると楽しい。笑
つまり両方できるようになって自由自在につくりたいものを作れるようになりたいね!思い通りに歌えたり、どんな曲でも即興でボイパができるようになるみたいに!
そんな今日の目次はこちら。(毎日一緒です)
1.簡単日記
今日は買い物をしました。amazonで。笑
夏なので麻のズボン、スリッポン、2リットルの水数本、野菜ジュース、などなど!重いものは運んでもらう!配達員の方大変だろうけどよろしくお願いします…!
あとね、鍋でご飯炊いたんだけど水の量多すぎて失敗した。悔しい。次回こそ美味しくふっくら炊いてやる。。。
2.今日の学び
◆エラー解決の方法
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
・やみくもにデバッグしない。
⇛仮説と検証を繰り返す。
・知ってそうな人に質問する。
・知見をブログ等と共有する。
・時間を区切る。
⇛これ特に大切にしたい!#プログラミング初心者
◆参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
プログラミング初心者歓迎!「エラーが出ました。どうすればいいですか?」から卒業するための基本と極意(解説動画付き) https://t.co/NByVGqPTMN #Qiita#プログラミング初心者
◆#Rails のcollection_check_boxesメソッド
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
htmlに使用することでチェックボックスとそのラベルを配置できる。
例えばUserモデルにある全ての要素に対して:nameを出力し、@groupのメソッドuser_idsにチェックを入れた各userのidを送付したいときの構造(省略済み)は#プログラミング初心者
<%= form_for @group do |f| %>
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
<%= f.collection_check_boxes( :group, :user_ids, User.all, :id, :name) %>
このように表記することができる。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
collection_check_boxesメソッドの構造確認 https://t.co/H7782l424x #Qiita #プログラミング初心者
◆#Rails ルートとビュー
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
ルートとそれに対応するビューがあればコントローラにアクションを明示しなくてもRailsが勝手につなげてくれてビューを表示することができる。#プログラミング初心者
◆#Rails で画像アップロード機能を実装する。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
Carrierwaveとmini_magickというgemを使用する。ざっくり手順は
・gemをインストール
・ターミナルでrails g uploader imageとアップローダーを作成
・使用するモデルファイルにmount_uploader :image, ImageUploaderで紐付け。#プログラミング初心者
ネストされてるコントローラのアクションを書くのが久々で楽しい!
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
要復習です。笑#プログラミング初心者 #Rails
configファイルを変更した後、サーバーを立ち上げなおさないと時間変更が反映されない。#プログラミング初心者
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
◆#Rails renderで繰り返し処理を行う
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
繰り返す部分を部分テンプレートにし、読み込む時に
<%= render @instance %>
とすることで部分テンプレートに渡される文だけ繰り返し実行される。しかもこれはeachで繰り返すより早い、とのこと。
なにこれめっちゃ便利やん。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月26日
★課題アプリの機能を2つ実装。もう一回復習したい。
★ライブの出演者紹介2バンド@twitter
今日はフロント側から少し離れて内側を。こっちは実装したら動きが見れるから楽しい〜!笑
もちろんビューがあるからこそ動いた時に感動するから両方極めたいな…#プログラミング初心者
エラー解決方法にある参考記事、動画はもっと早く見たかった。。。いまのうちに気づけてよかった。
今日はRailsでルーティングがネストされてるコントローラのアクションを書いてたんだけどなかなか思い出せなくて困った。復習必要ですゎ。
3.明日やりたいこと
理解度確認テストと、railsのテスト環境についてをぱぱーっと終わらせたいな。
でも夜はもしかしたら友人が泊まりに来るかもしれないから進められるかな…集中して進めよ!
4.終わりに
一週間お疲れさまでした!やっと週末ですね!休日に予定ある人もない人も素敵な週末を過ごしましょ〜!
僕は今日も昨日より成長しましたゎ!このまま突っ走って個人アプリにたくさん時間を費やそう!
今日もありがとうございました\(^o^)/
解決する、は楽しい。
今日はなかなか手強かった。なんでこのエラーがでるん?!って試行錯誤してたら数時間経っててびっくり。
そしたら不要ファイルを消した時に一緒に消したファイルやコードがあってそれをもとに戻したらなおりました。解決するってすっきりしますね。その分もう二度と間違えたくないと学びになるから今日も成長した。
そんな今日の目次は
1.簡単日記
勉強している時にわからないことがあったらすぐ誰かに聞ける環境。これはとても大きいと感じた。今回はウェブの質問スペースで二人で解決していく感じでした。
今日は反省。ここ数年何かがあっても誰のせいにしたことはほぼほぼないと自負できるんだけど、今日は「いやいやあなたが不要ファイル消してって言ったんやん」って思ってしまった…自分が何を消したのかもちゃんと自覚してから消したり行動するようにしよう。いわれるがままに行動するとか恥ずかしいことをしてしまった。反省。
2.今日の学び
◆#CSS box-sizingについて
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
要素サイズ(width, height)の算出方法を変更。
content …paddingとborderの幅を要素の幅と高さに含めない。(default)
border-box…paddingとborderの幅を要素の幅と高さに含める。
box-sizing:border-box;
これで簡単に幅、高さを設定できる。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
『CSS3 の box-sizing が便利すぎる!! padding や border に依存しない width, height 指定』 https://t.co/RCmvGSXSDL #phiary @phi_jpさんから
◆#CSS borderの色
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
ボーダーの色を付ける時は
border: solid 1px red;
のように太さも指定してあげないと色がつかない。
いくら
border-color:red;
と色をつけようとしてもないものに色を付けようとしても色は付かない。基本中の基本やけど手間取った…orz…#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
スタイルシートリファレンスhttps://t.co/lFpfYfkUZ7#プログラミング初心者
◆#CSS vertical align
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
行の中で文字の縦方向の位置を指定する。これが適用できるのはインライン要素とテーブル要素。ブロック要素には適用不可能。
vertical-align:top
とすることで行の上揃えでテキストを配置させることができる。デフォルトは
vertical-align:baseline;#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
vertical-alignhttps://t.co/4ikofEBqHh#プログラミング初心者
◆#HTML #CSS font awesomeのアイコンサイズ変更
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
アイコンがついているクラスに
font-size: 20px;
で調整。font awesomeはfontだからfont-sizeでサイズを調整できる。そのままでした。画像と思ってwidthとかheightをいじってたけどこれではできない、ということを学んだ。#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
フォントアイコンの使い方 (FontAwesome) https://t.co/TYaoWdOqkt#プログラミング初心者
◆#CSS での要素を重ねる方法
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
親要素…position:relative;
子要素…position:absolute;
top:hoge;
left:fuga;
top, leftは親要素から見たときの絶対位置を指定。この際親要素に縦横の幅をしていしてやると子要素はその中でしか動かなくできる。カリキュラムの基礎編の復習!#プログラミング初心者
◇参考
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
CSS「position:relative」と「position:absolute」で画像や文字を重ねる方法 https://t.co/Bq9aNJ3mpV @uszero800さんから#プログラミング初心者
-原因-
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
不要ファイル、コードを削除した際
①app/assets/javascriptsフォルダ
②app/views/layouts/application.html.haml内の
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
をまるごと削除してしまった為、methodが上手く変換されなかった。#プログラミング初心者
調べた結果
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
結論から言うと、GET以外のメソッドをつなげてくれるjquery_ujsを読み込んでいないためずっとGETでルーティングしてました。
削除してしまったjavascripts/application.js内、jquery_ujsが重要。初心者の自分からしたら全然わからんかった…。#プログラミング初心者
フレームワークって、それを扱う言語だけで構成されているわけではないんですね。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
例えばRailsだったら全てRubyで動いているものだと思ってたけど、今回みたいにjavascript(jquery)だったりも構成言語の一つだった。メモメモ_φ(・_・#プログラミング初心者 #Rails #Ruby #Javascript #jQuery
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月25日
★フロントビューLGTMもらったので中身へ。
★主催ライブの演者2バンド紹介@twitter
今日は主にCSSのことをつぶやいた。バックエンドについては不要ファイルと思って削除したのが実は必要なファイルだった。それで何時間もとられたが、もう二度と間違えない!#プログラミング初心者
そう。それでフレームワークがいろんな言語を使われているということに驚きました。きっと当たり前のことなんだろうけど初学者の僕にとっては驚き。これは本当に理解するにはこれらの言語も理解できるようになりたい。そしたらものをつくるときにもつまづきにくくなるだろう。
3.明日やりたいこと
主な機能の実装は終わらせて、テストに入りたいな…。頑張ろ!
明日、余裕作って簡単なアプリ作ってrailsとjavascriptの復習したいな。
4.終わりに
今日は少し荒れてしまって反省。こんなことで荒ぶっていたら先が思い知らされるね。
しかし!その分成長できたのだ!悩んで当たり前!まだ勉強し始めてから数ヶ月しか経ってないから仕方ない!誰だって悩む時ぐらいあるさ!
と言い聞かせて今日は寝ます!笑
今日も一日お疲れさまでした!明日金曜日頑張れば週末ですよみなさん!
ということで明日も充実させていきましょ^^
ありがとうございました\(^o^)/
試行錯誤、は楽しい。
今日はスクールの教室へ行って勉強してきました。周りの雰囲気もあってかいつもより集中できた気がする。家でもこれぐらい集中できるようになろう。
大丈夫、僕ならできる!
今日の目次
1.簡単日記
ウェブサービスの見た目を実装してるんですけど、これ楽しいんですゎ。どんどん形になっていくところが。でも仕様はちゃんと書いてないし思ったとおりになかなかならなくてきー!ってなりそうになる。なんでやねん、って。でも完成形はちゃんとなってるんだからできるんだよな。なんでできんねん。笑
今日は昼ごはんにカツ丼とうどん。普段外食しないから美味しかった〜。カツ丼とかカツ買ってきたら作れそう。まぁ料理に使ってる時間はないんやけども。
2.今日の学び
◆#haml #sass の記述
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月24日
hamlもsassもツリー構造でクラスを定義できる。同じ段落かそれより深い層を同クラスとする。hamlは閉じタグ不要。
ex.
(home.html.haml)
.header
.header__logo
.contents
(home.scss)
.header{
&__logo{
}
}
.contents{
}
両者とも慣れ必要。#プログラミング初心者
haml, sass両方ともめっちゃ便利やん…
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月24日
でもこれって危険なんですよね、きっと。便利なのはわかるけど、これに慣れて元のHTMLやCSSの記述の仕方を忘れてしまっては本末転倒。
使うにしても使ったあとのHTMLとCSSがどうなるかを常にイメージできるようにしておこう。#プログラミング初心者 #haml #sass
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月24日
★課題アプリの主要ページのフロント8割終了
★ライブのスポンサー紹介@twitter
今日はhamlとsassを使ったフロント実装。これ超便利!コードを書くの楽しくなりそう笑 でも思うように行かないところもありむむむ、って気づいたらこんな時間。明日に持ち越し!#プログラミング初心者
今日はほとんど作業だったため、作業自体がアウトプットだったためあまりつぶやきませんでした。もうね、ずっと試行錯誤していた。
フロントエンドの実装に!!!
最後の最後がわからん!!!
くぅ〜!!!!これどうやったらできんねん!?
明日も頑張って検索して試行錯誤します。
って、なんだかんだ徐々に理想の形になっていくのは楽しいね。
試行錯誤も新しい発見がたくさんある。全てを吸収する勢いで頑張るぞ〜!
3.明日やりたいこと
理想はAM中にフロント実装完了して投げてLGTMもらいたい!そして今回調べたことについてアウトプットしたい!!
4.終わりに
試行錯誤を繰り返したから今日も成長してんな〜!…毎日言い聞かせることにより本当に成長するように促してる。笑
今日は悩む事の方が多かったかもしれない。でもこんな日もあるしこうやって悩んでいる時間は無駄じゃない。ちゃんと少しずつ前に進んでいるのだ。こうやって向き合う時間も大切。プログラミングへの愛や、愛。あかん、迷走してきた。
明日は木曜日!世間の人は後2日行ったら週末ですよ!頑張りましょ^^
今日もありがとうございました^^
全力、は楽しい。
常人の2〜3倍の努力では生ぬるい。
死ぬ気で20〜30倍ぐらいやって周囲を引き離せ。
ーー編集者:箕輪厚介ーー
https://www.onecareer.jp/articles/1923
誰もが箕輪さんみたいになれるとは思わないけど
自分が思う常人の20倍ぐらい努力したいなって思わせてくれました。
幻冬舎の見城さん思い出した。師弟だからそりゃそうか。笑
ありがとうございます。
改めていまを頑張ろう、立ち向かおうという勇気をもらいました。
プログラミングも、音楽もやったるで。
全部中途半端にならんように程よく力を抜いて、人生に全力で取り組もう。
そっちの方が楽しいって知ってるからね。
今日の目次。
1.簡単日記
今日は息抜きにnanaという音楽系SNS?に投稿した。久しぶりだったから客観的に見た出来はいまいちだったけど、これが今の僕の実力。定期的にやって理想の音楽を演奏できるようになるぞ!
聴く人に曲の情景が浮かび上がるようなパーカッションを打ちたい。
と、少し格好良いことを言って簡単日記を終えます。笑
2.今日の学び
◆#Rails で定義していないのにfindなどDBへの接続メソッドが使える理由
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
各コントローラーはActiveRecord::BaseというActiveRecord(Railsで使用されているOR mapper)を引き継いでいる。このActiveRecord::Baseで定義されているメソッドがfindであったりnewだったりする。#プログラミング初心者
この辺りの理解が曖昧だったな。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
ActiveReord::Baseで定義されているから使えるようになってたのね。だからDBと直接繋がっていないviewとかでは使わないのね。納得。
◇下記を参考◇
Rails: ActiveRecord::Baseメソッドのまとめ https://t.co/a90CJMTMrC #Qiita#プログラミング初心者 #Rails
◆#データベース のテーブル内キーの制約
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
作成したmigration fileに追記して制約を付与。
・NOT null制約(nullは不可)
カラム設定末尾に下記追加
null:false
・一意性制約(重複は不可)
カラム設定次の行に下記追加
add_index :tablename, :columnname, unique: true#プログラミング初心者
・主キー制約(各テーブル内でレコードを判別する為のキー)
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
Railsではidカラムが自動で主キーになる。
・外部キー制約(他テーブルと関連つける為に必要なキー)
カラム設定行の末尾に下記を追加
foreign_key: true
外部キーってアソシエーションでも使うやつやん。#プログラミング初心者 #Rails
◆#データベース 正規化
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
第一正規系…繰り返されるカラムを一つにまとめる。
第二、第三正規系…レコードで重複している内容を別テーブルとして管理する。
正規化のデメリットはテーブル数が増える、つまり関連するテーブルを検索する度にSQLを発行する回数が増える。#プログラミング初心者
また、正規化した後のテーブルで考えるのは
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
・レコードが増えた場合どの様な変更が必要になるのか?
⇛新たなテーブルを作成する必要にならないか。
・カラムの内容を変更する時に手間がかからないか?
⇛カラムの変更で大量のデータ修正は不要か。
を確認したい。#プログラミング初心者
◆#Rails データベース設計
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
外部キーのカラムタイプはintegerではなくreferencesとしないとforeign_keyのオプションが効かなくなる。nameも勝手にmodel_idに変えてくれる。
ex.
|column|type|option|
|-----|-----|-----|
|user|references|null:false, foreign_key: true| #プログラミング初心者
◆データベースの多対多
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
アソシエーションを組む時、多対多の時は中間テーブルを挟んだほうがわかりやすく管理しやすい。その方法は
・hogesテーブルとfugasテーブルの中間テーブルをhoge_fugasテーブルとする。
・hogesとhoge_fugasの関係は1対多、fugasとhoge_fugasも同じ。#プログラミング初心者
・アソシエーションの記述としてはhogeとfuga側には
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
has_many :hoge_fugas
has_many :fugas, through hoge_fugas
と記載。
・hoge_fugaには
belongs_to :hoge
belongs_to :fuga
と記載することでアソシエーションを組める。
…ちょっとざっくりしすぎたかな。。。いつものことか#プログラミング初心者
◆#Sass とは?
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
CSSの機能を拡張した言語。
・Sassを使うことでCSSを効率的にかける。
・CSS内で変数を使って使いまわしたり計算することができる。
・ファイルの種類は.sassと.scssの2種類。scssの方がメジャーで記述方法もCSSと似ている。
・複数のCSSファイルを統合可能。#プログラミング初心者
◆#Sass におけるBEM
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
BEMとはBlock, Element, Modifierの頭文字を取ったHTML要素のclass命名規則。これで楽に命名可能。
Bの中にEがあり、BやEを装飾する時Mを使う。
・Bの中のEは menu__listみたいに_を2つ使用する。
・Mを使う時は list--blackみたいに-を2つ使用する。#プログラミング初心者
◆#Haml とは
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
HTML…html.erbをより簡潔に記述できるビューテンプレートエンジン。
まだ導入しただけで使ってないけど、Githubとかサイトを色々見てるとめっちゃ書きやすそう!早く使ってみたいな。お楽しみは明日へ持ち越そう。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月23日
★データベースの正規化及び設計…カリキュラムで使うアプリのLGTMもろた。早い対応に感謝
★Sass、Hamlの導入
★音楽練習の為nana投稿
★ライブ当日スタッフへ連絡
今日は主にデータベースについて学習後、フロント側をかじり始めた。明日は実際に実装する!#プログラミング初心者
今日はデータベース設計が主。カリキュラムのデータベース設計もLGTM(Looks Good To Me)をもらって一安心。
明日はがっつりフロントエンドやったるで!!!
3.明日やりたいこと
SassやHamlを使ったフロントエンド実装。
4.終わりに
今日もまたたくさん学んで成長できた〜!笑
寝る時にピンクノイズ聞きながら寝るのを忘れずにしよう。
どうやら記憶力がよくなるらしいよ。あのTVの砂嵐が弱くなったみたいな音。
明日も素敵な一日にしていきましょ!
ありがとうございました^^
つながる、は楽しい。
今日も雨が降ったり止んだり、なんて日だ。
一日集中できた〜!今朝ニュースアプリで睡眠時にピンクノイズを聞きながら寝ると記憶力が良くなるらしいので今日から実践してみるぞ!効果の測り方?知らん!こんなん気持ちの問題やろきっと!笑
今日の目次です。
1.簡単日記
僕基本的に毎日家で勉強してるんですよ。静かな環境の方が割と集中できちゃう人なんです。でもやっぱり息抜きも大事かなと思って、持ってきてた任天堂スイッチのスマブラを半年振りぐらいにやったんですけど…
おもろい!!!!!!!!!!
ジョーカー(有料コンテンツキャラ)初めて使ったけどめっちゃ強いやん!!!!
そしてずっと使ってたリドリーもやっぱり強い!!!!
流石に半年振りだったからVIPから落ちてたけど、それは仕方ない。
しかし30分遊んでから封印しました。
これはあかん、手元にあったら一日中ずっとできてしまうやつや。笑
音楽の練習とかで息抜きをしようと改めて感じました。
2.今日の学び
◆#HTML #css のブロック要素とインライン要素について。
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
ブロック要素の中にインライン要素。確かにインライン要素に変更することでも横並びになるね!ずっとfloatでやってた笑
参考
ブロック要素とインライン要素の違いをとことん解説 │ FirstLog https://t.co/XmHxNMMjDa#プログラミング初心者
◆#SQL について
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
RDB(Relational Data Base)を操作するための言語がSQL(Structured Query Language)。
命令はデータを定義するDDL(Data Definition Language)とデータ操作するDML(Data Manipulation Language)に分類。
SQLはどのRDBに対しても基本的に同じ文法で操作可。#プログラミング初心者
◆#SQL の基本(mysql)
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
terminalでmysql -u rootと実行してmysql内の操作が可能になる。基本的なコマンドとして
・use …使用するDBを選択
・create…DBやtableを作成
・show …DBやtableを表示
・alter …追加、修正などの変更
各コマンドの後にDBやtable、columnを指定。#プログラミング初心者
◆#SQL テーブルデータ内の登録、変更
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
下記commandでtable内要素操作可
INSERT INTO tablename(colume1value, ...)…テーブルにデータを登録
UPDATE tablename SET hoge where fuga…テーブル内のデータを変更
DELETE FROM tablename WHERE hogefuga…指定したレコードを削除#プログラミング初心者
◆#SQL 便利な演算子
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
DB内のデータ内を検索する記述は下記など。
WHERE colomn BETWEEN lowvalue AND topvalue …lowvalue からtopvalueの間に入るレコードを検索する。
WHERE column IN ("value1", "value2")…value1かつvalue2であるレコードを検索する。
excelみたいや!#プログラミング初心者
◆#SQL 複雑な検索
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
SELECT
food_id
COUNT(*) "注文回数"
u.*
FROM selects s
JOIN foods f ON https://t.co/FDuhIeawmi_id = https://t.co/Kcjqk66ynx
WHERE date = "2019-07-03"
GROUP BY food_id
…上記で #プログラミング初心者
・selectsテーブルで複数個あるfood_idの数を
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
・「注文回数」というカラム名にして
・selectsテーブルにあるfood_idとfoodsテーブルにあるidを対応させて
・2019-07-03のデータだけを
・food_idでまとめている。
⇛COUNTはfood_idでまとめられたアイテムの個数を表示。#プログラミング初心者 #SQL
◆#データベース の設計
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
・DBで管理するデータ(エンティティ)を決める。
・データが持つ属性(カラム)を決める。
・データ間の関係を決める。
・データを実際にテーブルとして定義する。
これ、3D CADでロボットやスマホを設計するときに決めるアセンブリの関係図と同じ。#プログラミング初心者
#今日の積み上げ
— ShowGoGoGo@プログラミング勉強中 (@shshsshsh8) 2019年7月22日
★SQLの基本的な使い方
★データベースについて少し
★主催ライブのスポンサー紹介@twitter
今日は比較的集中できたけど、夜は集中力が落ちたな。こういう日があってもいいんです。笑
明日はデータベース周りを学習した後フロントの実装にとりかかりたい!#プログラミング初心者
今日はデータベース周りの知識を集中的に学習。SQLってexcelのソーティング機能を自分で指定してあげるだけだからそんなおもしろくねぇな〜こんなんやったらexcelのフィルター機能使えばえぇやん、わざわざプログラミングしやんでも〜って思ってたけど、CONCATってすごいな!!カラムを編集してそれを新しいデータとして出せるの!!Rubyとかでいうmapメソッド的なやつ!!しかもカラム名も変えられるしこれ完全に新しいカラムやん、すご!って感動してた。SQLなめてました、すみません。
そしてデータベース設計。これ3D CADでモデリングする時にやることが全く一緒。どのアセンブリにどのアセンブリ、パートファイルを組み込むのか。場合によっては全てを統一するスケルトン、マップファイルを作ってそこに全部アセンブリする。まるでデータベースのマスターキー的な考えのパートファイルを作ったりして。
分野は違えど考え方が一緒で異分野の知識が繋がってとても楽しくなってきた。その分設計の大切さは理解しているつもり。最初の設計が甘かったら後々苦労するのも身に沁みてる。この気持ち大切にしていきたい。
3.明日やりたいこと
データベース設計について学習。あとはフロントの実装に取り掛かりたいな。
4.終わりに
今日も一日成長したな〜!笑
世間は選挙や吉本興業で大騒ぎ。いまは騒いでいる人と関わらないから傍観者な気分。その分勉強に集中できるから良い。嬉しいけどどこか寂しくもあるね。
明日も素敵な一日にしていきましょう\(^o^)/
ありがとうございました!
できる、は楽しい。
今日は強い雨、弱い雨、晴れが行ったり来たり。彼女が福岡に来てくれたので一緒に勉強。仕事しながら学ぶのは本当にすごい。僕はそれから逃げてしまった。…この話はまたいつか。笑
今日の目次も以下になります。
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.終わりに
今日ほどエラーに立ち向かった日はなかったな。これまではカリキュラムにある内容をやっていればエラーは基本的に出なかったしエラー解決問題もなんだかんだ問題の為の原因がちゃんとあるからそれを考えたら特に難しいとは感じなかったけど!!!!けど!!!!自分で作るサービスのエラーは何がなんだか!!!いうてエラー解決問題と一緒なんやけどね!!!こんなエラー見たことない!ってやつ出てくるしなんでこうなんの?!っていままで起きたことないところでエラー出るから勉強になる。
しっかし今日も一日で成長したわ〜笑
明日からまた一週間が始まります。働かれる方も勉強する方も充実させた一週間のスタートを切りましょう!ありがとうございました^^