ほげほげパッチ

有る事無い事 徒然なるままに

2023-08-01から1ヶ月間の記事一覧

画像投稿機能

Active Storage ファイルアップロードを実装できるGem(だったが、Railsに統合された) ターミナルで導入 # マイグレーションファイル生成 % rails active_storage:install % rails db:migrate ImageMagick コマンドラインから画像処理できるソフトウェア % …

親子関係のインスタンス、collectionオプション

親子関係にあるインスタンスの生成 def create # message投稿 # -> paramsに外部キー(room_id)が含まれる。 # -> 外部キーからRoomモデルのレコードを取り出す @room = Room.find(params[:room_id]) # 取り出したRoomのレコードが親要素、messagesが子要素 -…

日本時刻の設定、dependentオプション

気づき 少ないヒントで機能を実装していく感じ、だんだん実践の匂いがしてきた。 各工程を順にこなしていく技術を我が物に。 htmlの入れ子構造は、図示すべし。 日本時刻の設定 # 環境設定の共通ファイル class Application < Rails::Application config.i18…

chatGPT活用例

たまたま調べたら結構面白かったので。 gyazo.com 出典:New Era of Computing - ChatGPT がもたらした新時代 - Speaker Deck chatGPT活用例1 思考の壁打ち: 〇〇の考えで抜けているところを指摘して 添削・評価: 〇〇の基準で、10点満点で評価して 校正: 誤…

メソッドあれこれ(references型、select要素、where.not)

今日の工夫 コードは基本手打ちして、VScodeのチェック機能で後からチェックする。 間違いやすいところのチェックになる。 カリキュラムからVScodeに画面を切り替えるときは、該当テキストをドラッグしておく。 戻ってきたときにすぐに目がいくように。 コー…

deviseの復習

メソッド関係 authenticate_user! 命令文。オーティケイト(認証)せよ! 「if ログインしていないならば, then ログイン画面へ」という条件分岐を一括で設定 authenticate: 確実にする、認証する コントローラー内で使う render メソッド ビューファイルを…

HTML復習

今日の工夫 勉強時間は、スクリーンタイムで確認すべし。 box-sizing プロパティ paddingやborderに影響されず、widthやheightを固定できる * { box-sizing: border-box; } text-decorationプロパティ a要素のアンダーラインを消す時に使う .title a { text-…

単体テストコード #3 (コントローラーのテスト)

テスト方針 modelのテスト: インスタンス生成 -> validチェック (データベースとのやりとりを確認) controller: リクエストを送ってみて -> レスポンスをチェック (クライアントとのやりとりを確認) Request Spec RSpec内のコントローラー用のテストの手…

DB設計:中間テーブル

中間テーブル テーブルが「多対多」の場合は、カラム同士の関係性だけを搭載したテーブルを間に作る。 user_classesテーブル id user_id class_id 1 1 1 2 1 2 3 2 3 4 2 1 through 「多対多」のアソシエーションで使う。 usersテーブル class User < Applic…

結合テスト#2

今日の学び 新単語は先に書き出すべし テストは基本ミスってるところを教えてくれるから、それに従う。 必要とされるのは、知識より根気。。。 have_selector セレクタの有無を確認 expect(page).to have_selector ".content_post[style='background-image: …

いざ 結合テスト

System Spec 結合テストを記述する仕組み。 Model Spec: モデルのテスト Request Spec: コントローラーのテスト (RSpec基本機能) System Spec: 結合テスト (CapybaraというGemを使う: Rails 標準搭載) Capybara = 結合テスト用のGem ≪chat GPT先生≫ Capybara…

蛇足 Gemfileのグループ分け

Gemをインストールするときはどこに書くのが正解だっけ?ってなったので。 結論 開発環境でだけ使いたい ===> group :development do テストでだけ使いたい ===> group :test do 開発環境とテスト環境で使いたい ===> group :development, :test do 本番環境…

単体テストコード#2

メソッド context: 条件ごとにグループ分け 使い方は、describeと同じ。単なるグループ分け。見やすさ。 テストファイルを作成するときのコマンド % rails g rspec:model tweet spec/factories の中と spec/models の中にファイルができる。 Faker::Lorem.se…

単体テストコード

今日の工夫 カリキュラムは、INDEXのタイトル部分だけを先に読んでから、上から順に中身を読む。 全体像を把握した上で、個別の内容をinputする。 徒然草 世の中にはいろんな働き方があって、いろんな技術があって、いろんな言語があり、勉強しなければいけ…

RSpec

今日は、「コピペせず、1回はする」を試してみた。 結構頭に入る。 RSpec 「Spec」 = テストコード 「Ruby」 + 「Spec」 = Rubyのテストコード なぜ Spec = テストコード? ≪chatGPT先生≫ 「spec」という用語は、「specification」(仕様)の略称として使わ…

GitHubおさらい + よくあるエラー

英語がわかるとマジで面白い。 (何の勉強?笑) 英単語(復習含む) migrate:ラテン語 migro(移住する) -> 移住する。渡りをする。 immigrate: in-(中に)+migro(移住する) -> 他国から移住する。 description: de-(~から下に)+scribo(書く)…

params深掘り

paramsの使い所がわかりません エラーの原因を探るときに、時々使われているけど、自分で使おうと思ってもさっぱり。 とりま、いつ何が入るのか追いかけてみる。 createアクション内にbinding.pry 10: def create 11: @post = Post.new(post_params) 12: 13:…

GitとGitHub

Key-Word Git:Linux開発者が命名。自分にちなんだ名前(?!)ということでGit。 スラングで「ばか」「間抜け」の意。 ちなみに、「Linux」も開発者名に由来。リーナス・トーパルズ。 バージョン管理ができるので、GitHubとあわせてチーム開発で重宝 GitHub:ソ…

サービス設計

ニュー単語 デプロイ:公開 depoly:折ら(ploiier)ない(des-) -> 配備する、配置する、展開する ペルソナ:サービスを使用するユーザー(ターゲットとは似て非なる言葉。) persona:語源不詳 -> 仮面、役柄、人物 派生語 person:人物 ユーザーストーリ…

requireとpermit

エラー問題めちゃくちゃ時間かかる。(2日かけて問題1 笑) 怪しい箇所の候補があまり浮かんでこない。 けど、数学の問題解いてるみたいで楽しい。 binding-pryで裏側の動き見る感じ、もっと使いこなしたい。 もっとちょうだい。 form_with => params の中…

デバッグ

ことば debug:de(否定)bug(虫) -> バグを取り除くこと pry-rails:デバッグツールの一つ。binding.pryが使えるようになる。 もともとpryというrubyのデバッガが存在する。それのRails版らしい。 pryはIRB(対話型コンソール)の上位互換。 pry:古英語…

検索機能

任意のルーティング設定法 collectionとmember いよいよ自分で好きにルーティング。 コレクションは、"集める"だけ = idなし メンバーは、"個人を認識"する = idあり resources内に入れ子にしないとつかえないっぽい └親要素に対してアクションを追加するか…