ほげほげパッチ

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

2023-01-01から1年間の記事一覧

例外処理

例外、例外処理 例外とは、事前に想定される、期待と違う挙動。想定されるエラー。(コーディングしてて出くわすエラーとは少し違う) Exceptionクラスを承継したNoMethodErrorとかSyntaxError。 activerecord-import (Gem) importメソッドが使えるようにな…

レスポンシブwebデザイン

「Noto Sans JP」 Web制作でよく使うフォント Webウェブフォント インターネット上から読み込めるフォント Noto Sans JPもwebフォント GoogleFontsグーグルフォンツ Googleのwebフォント ことば HTMLのコードを書くことを「マークアップ」、CSSのコードを書…

ライブラリの種類

標準ライブラリ インストールは不要。読み込み要。Dateクラス 組み込みライブラリ 元々使えるライブラリ。String, Integer, Array, Hash 外部ライブラリ Rubyでいうとgemのこと。インストール要、読み込み要。 読み込み require "date" # これ以降の記述で、…

テストコード #2

FactoryBot × 中間テーブル (spec/factories/room_users.rb) # アソシエーションのみ定義 FactoryBot.define do factory :room_user do association :user association :room end end (messages_spec.rb) # userとroomを自動で追加 @room_user = FactoryBot.…

テストコード #1

テスト結果のログ表示 (.rspec) --format documentation エラーメッセージを英語に (spec/rails_helper.rb) I18n.locale = "en" after アフターメソッド 文字通り、〜の後に動作させたい時 FactoryBot.define do factory :message do content {Faker::Lorem…

Ruby 深掘り #2

クラスの継承 親から子に引き継ぐ。 親クラス(スーパークラス) 共通する部分を記載 子クラス(サブクラス) 個別の情報を記載 class Chichi def initialize(eye_type, height) @eye_type = eye_type @height = height end def attitude puts "目は#{@eye_t…

Ruby 深掘り #1

caseケース文 条件分岐が多い時に使う。elseif的な。 case - when - else - end if - elseif - else - end whileワイル文 繰り返し構文 while 条件式 do # 条件式を満たす間は、ずっと繰り返す end 無限ループ 元はプログラミングの用語。 while true # 常に…

画像投稿機能

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内に入れ子にしないとつかえないっぽい └親要素に対してアクションを追加するか…

「.id」か「_id」か

困った なんか、idが乱用されていて、初心者を惑わせてくる。 結論 .id:主キーの取得 _id:関連のチェック 解説 .id .idはActive Recordオブジェクトのプライマリキー(主キー)を取得する。 (tweet.allとかuser.find()とかの、前半部分がオブジェクト) …