2023-06-15から1日間の記事一覧

javascriptクラス4

オプションrで選択したファイル内容を表示させるコード 初めに書いたものはネストがすごく読みずらかった。 プログラム内容 async function get_data() { const filedata = []; try { await fs.access(directoryPath, fs.constants.F_OK); const files = awa…

javascriptクラス3

やった事 前回に引き続き、memolistディレクトリが無い場合の処理を書いた。 分かった事 コールバックで書くと、1つの処理ごとにエラー処理を書いた関数を作るので、いくつか順番に実行する時にすごく読みにくい。async/awaitを使うと、nodeにある元からプ…

javascriptクラス2

readline Node.jsで、ファイルから1行ずつ読み込むためのreadlineモジュール - Qiita enquirer メモ1行目のリストを表示し(Select)、選択されたもののファイル名を取得したい。が、やり方が全く分からずひたすらREADMEを読んだりググったりした。ArrayPro…

javascriptクラス1

やった事 標準入力を受け取れる様にした Yargsをインストールして使い方を調べた 参考にしたもの 標準入力 【Node.js Tips】定番のCLI用パッケージyargsの使い方リードライン | Node.js v19.8.1 ドキュメント yargs yargsNode.jsで定番のCLI用パッケージyarg…

非同期処理

JavaScriptのコード 参考にしたものfetch呼び出しでasync/awaitを使わないパターン、使うパターンfetch() - Web API | MDN初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発 | Ethan Brown, 武舎 広幸, 武舎 るみ |本 | 通販 | Amazon 書いてみたコード…

カレンダープログラムJavaScript版

minimist コードを書いて実行しようとしてエラーが出た。どうやらnpmインストールが必要らしい。 > npm install minimist すると、package-lock.jsonとpackage.jsonにも内容が追記され、エラーが出たファイルも無事実行出来る様になった。 リファレンス 下記…

ESLintとPrettier

やった事 コマンドラインでESLintを使えるようにする。 自分のエディターでESLintを使えるようにする。(常にLintが動くようにする) コマンドラインでPrettierを使えるようにする。 自分のエディターでPrettierを使えるようにする。(常にFormatが動くよう…

nvm、Node.js、npm

nvmとは nvm はnode.jsのバージョン マネージャー。 下記を参考にインストールした。nvm-sh/nvm: Node Version Manager - 複数のアクティブな node.js バージョンを管理するための POSIX 準拠の bash スクリプト Node.jsとは JavaScriptの実行環境 。JavaScr…

JavaScript入門2

イベントハンドラの登録方法 HTML要素の属性としてイベントハンドラを登録する HTML のコードの中に JavaScript のコードが含まれることになり現在は推奨されていない。 DOMで取得した要素のプロパティにイベントハンドラを登録する ※同じイベントに対するイ…

JavaScript入門1

Ajax Ajaxとは、非同期通信を、「JavaScriptの技術で実行すること」を指します。企業によっては、単純に「非同期通信」のことを指してAjaxと呼ぶケースもあります。AjaxはWebページに搭載されている技術ですが、このAjaxを使うことで、Webページ全体を更新す…

コメント機能修正

コメント機能 「コメントを編集出来るのはコメントした本人のみ」という制約を付ける方法 app/views/books/show.html.erb <% @comments.each do |comment| %> <tr> <td><%= comment.content %></td> <td><%= l comment.created_at, format: :short %></td> <td><%= comment.user.name =</td></tr>…

デザインパターンについて

GoFのデザインパターンを勉強する - Qiita Builderパターンビルダ (Builder) | Ruby デザインパターン | 酒と涙とRubyとRailsと Decoratorパターンデコレータ(Decorator) | Ruby デザインパターン | 酒と涙とRubyとRailsと FacadeパターンRubyでFacadeパター…

オブジェクト指向

インスタンス変数について (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita『 一時的なデータはインスタンス変数にせずに引数、戻り値、ローカル変数として受け渡す』というのは気をつけていきたい! 参考資料 [オブジェ…

Railsでテスト2

詰まった事 created_onメソッドのテストに悩む‍ test "created_on" do report = reports(:one) assert_equal report.created_on, report.created_at.to_date end これだとtrueになるのは当たり前なのでもはやテストする意味もない。。 test "created_on" do …

Railsでテスト

参考にしたもの Rails テスティングガイド - Railsガイド 詰まった事 ユーザーのモデルテストでfollowのテストを下記の様に書き、followingをどう書こうか悩んだ。 修正前 test "follow" do me = users(:alice) other_user = users(:bob) assert_not me.foll…

テスト

ブラックボックステスト 同値分割・境界値分析の解説 - Qiita 同値分割 同値クラスを分け、無効同値クラスが重ならないようにテスト条件を組み合わせてテスト条件とします。 境界値分析 有効同値クラスの最大値および最小値が存在する場合、それらを「onポイ…

コメント機能4

やった事 polymorphic_pathを調べた 日報、コメントの新規作成に失敗した時のコードを書いた polymorphic_path 【Rails】link_toのxxx_pathが長い時はpolymorphic_pathを使うと綺麗に書けるお話 - Qiitaを参考にパスを書き換えた。(書き方が違うだけで同じ…

コメント機能3

やった事 コメントとユーザーの関連付けをした Commentのアクションを書き直した created_atの表示を日本時間に変更 詰まった事 ユーザーを削除しようとして下記のエラーが出た。 app/models/user.rbの下記を消すとエラーが解消されたので、commentableを読…

コメント機能2

やった事 railsガイドを読んだ SQLについて Active Record クエリインターフェイス - RailsガイドSQLインジェクションの観点から、下記の記述方法はしてはいけない! 条件文字列の中に変数を直接置くと、その変数はデータベースにそのまま渡されてしまいます…

コメント機能1

やった事 reportにコメントをつけられる様にした。 外部キー制約について 外部キーの概要と制約を使うことのメリット・デメリット - Qiita では Rails の references型 は何をしているのか xxx_id ではなく、 xxx と書くだけで xxx_id の形にしてくれている …

ユーザーフォロー7

やった事 ユーザーフォローのコードを書き、リンターを通した destroy、deleteについて調べた inverse__ofについて調べた destroy、deleteについて 【Rails入門】データを削除する方法(destroy/delete)を確認しよう | 侍エンジニアブログ[Rails]deleteメソ…

ユーザーフォロー6

やった事 フォローする時のcreateアクションの実装 フォロー解除する時のdestroyアクションの実装 railsガイドを読んだ 参考資料 Active Record の関連付け - Railsガイド createアクション ネタバレになりそうなので折りたたみます コントローラー app/cont…

ユーザーフォロー5

やった事 フォローのコードを書いてみた bookコントローラーの挙動を確認した railsガイドを読んだ ユーザーフォローのコード 詰まった事1 viewの <%= form_with(model: current_user.active_relationships.build, local: true) do |f| %> <%= hidden_field…

ユーザーフォロー4

やった事 form_withの挙動を調べた form_withについて form_withの:scopeオプション - プログラミング学習ノート 送った値をデータベースに保存するときはモデルのインスタンスを与え、保存する必要がないときはURLの指定でいい、というように習った気がしま…

ユーザーフォロー3

inverse_of: Active Record の関連付け - Railsガイド 3.5 双方向関連付けActive Recordでは標準的な名前同士の関連付けのほとんどをサポートしていて、自動的に認識できます。ただしActive Recordは、:throughや:foreign_keyオプションを使う双方向関連付け…

deviseリファクタリング

autofocus: trueとは ページを読み込んだらすぐにautofocus属性を記述している部分にカーソルが移動して入力状態になる機能。autofocus:trueは1つのhtmlファイルに1つまで!【超初心者向け】autofocus: trueの使用法 autocomplete属性とは ウェブサイト上の <input>…

ユーザーフォロー2

ユーザーフォロー やった事詳細 user.followingsで「そのユーザーがフォローしているユーザーたち」が取得できるようにする モデルの関連付けをしてDBからデータを取得しようとすると永遠とこのエラーが出てしまう。DB関連のメソッドいくつかで出るのでDBの…

ユーザーフォロー1

やった事 ユーザーフォローの機能を作る やった事詳細 DB設計 DBのプラクティスで提出したものを参考にした。 モデルを作る scaffoldは関係する機能を全部作ってくれる。こんなにいらないから、今回は使わない。rails generate scaffold | Railsドキュメント…

画像アップロード4

やった事 「プロフィール編集画面にも現在設定されているアイコンを表示する」の実装 やった事の詳細 【Rails】Active Storageの基本情報と実装方法 - AUTOVICE | 坂井光太郎のポートフォリオサイトを参考にした。 自分で定義したバリデーションを呼び出すに…

画像アップロード3

やったこと 参考になりそうな資料を読んだ Railsガイド(5.2) Active Storage の概要 - Rails ガイド gem mini_magickをgemfileに追加して、viewは下記の様に記述する様。 <%= image_tag user.avatar.variant(resize: "100x100") %> railsガイド(6.1) Active …