ham-capのブログ

プログラミング学習の記録

【Ruby】eachの返り値について

eachメソッドの返り値? Ruby Silverの勉強をしていて、以下のようなコードの実行結果についての設問があった。 (1..10).each.reverse_each.each do |i| puts i end 実行結果は以下。 10 9 8 7 6 5 4 3 2 1 単純にeachで取り出したものをreverse_eachで逆順…

こたつでもそこそこ快適な作業環境を作るために買ったもの

この記事はフィヨルドブートキャンプ Part 1 Advent Calendar 2023の17日目の記事です。 Part 2もあります。 昨日はayu-0505さんの「初学者が続けているテック系Podcast紹介!」でした! はじめに フィヨルドブートキャンプでプログラミングの学習を始めた時…

【Ruby】ぼっち演算子でNoMethodErrorを回避する

ぼっち演算子とは何か Ruby2.3から実装された機能で、るりまの説明によると safe navigation operator (ぼっち演算子): object&.foo という形式のメソッド呼び出し形式が追加されました。これは object が nil でないときにメソッド foo を呼び出します。 Ac…

【React】propsで受け取ったデータを自身のstateにコピーしてはならない

先日、フィヨルドブートキャンプのプラクティスにReactが追加されました。 自分のタイミング的にもちょうどよかったので、早速入門してハマり倒しています。 というわけで、今回はReactにおけるpropsの扱い方に関して気づいたことを書きます。 結論としては…

【Node.js】Node.jsのコード内からSQLite3を使ってみる

フィヨルドブートキャンプでNode.jsを使ってCLIを作成する課題があり、データの保存先をSQLiteにしたくてnode-sqlite3というnpmを使ってみたので、導入方法をメモしておきます。(SQLite本体がマシンの中に入っていることと、Node.jsがインストールされてい…

【Git】プルリクに関係のない変更が紛れ込んでしまった時の対処法

今回はフィヨルドブートキャンプの課題レビューで指摘され、久しぶりにGitであれこれやってみたことを書きます。 やりたいこと 前提条件 手順 --forceは取扱注意 まとめ 参考 やりたいこと プルリクエストに不必要な変更が紛れ込んでしまったため、修正してd…

【Ruby】おとなしそうな顔して破壊的メソッドな奴ら(Array#shift・Array#unshift)

初めて使ったメソッドが思いがけず破壊的メソッドだったよって話。 目次 目次 破壊的メソッドでも末尾に必ず「!」がつくとは限らない shift unshift まとめ 破壊的メソッドでも末尾に必ず「!」がつくとは限らない Rubyの各クラスで使用できるインスタンス…

Vimが好きだ

これはフィヨルドブートキャンプ Part 2 Advent Calendar 2022の7日目の記事です。 昨日はfuwa-syugyoさんの「輪読会はいいぞ、という話」でした。 ちなみにフィヨルドブートキャンプ Part 1 Advent Calendar 2022もあります。 目次 目次 はじめに この記事…

【Rails】hidden_fieldにユーザー情報は載せないほうがいい

フィヨルドブートキャンプの課題レビューで指摘されたシリーズ。 セキュリティに関わることなので大事。 form_withの中でユーザーに何かを入力させることなく何らかの値の受け渡しを行いたいときにはhidden_fieldを使う場合があると思いますが、データの中身…

【Rails】findとfind_byとfind_by!についての概要

そもそもこのメソッド達は何なのか? ActiveRecordって何さ? 使い方 find find_by find_by! 気を付けたい点 まとめ 今回は、おそらくRailsの中でよく見かけるメソッドトップ10に入っているんじゃないかというぐらいよく見る'find'、'find_by'及び'find_by!'…

【Rails】referencesを使って外部キーを設定する!

もくじ もくじ やりたいこと マイグレーションファイルの書き方 カラム名を別名にしたい場合 まとめ やりたいこと タイトルのまんまです。新しいテーブルのカラムに外部キーを設定します。 マイグレーションファイルの書き方 例えば、foobarsというテーブル…

【Rails・DB】DB反映済みのマイグレーションファイルを手元でサクッと修正する手順

もくじ もくじ カラム名とか間違えるよね 具体的な手順 事前準備 修正する rails db:rollbackの仕様 まとめ カラム名とか間違えるよね DBに新しいカラムを追加するためにマイグレーションファイルを作り、意気揚々とrails db:migrateした後にカラム名のタイ…

【PostgreSQL・Ruby】異界と現世を繋ぐゾ!(RubyのコードからPGを使ってPostgreSQLにアクセスします)

もくじ もくじ したいこと DBとプログラムは別の世界 PG 手順 1. DBとのコネクションを構築 2. SQLを発行 → 3. レコードをゲット! まとめ したいこと Rubyで書いたプログラムからデータベース(以下、「DB」という)にアクセスしたい。 とりあえず今回はPos…

【Ruby】まだ空白文字で表示位置調整してるの?(文字列を右寄せにします)

もくじ もくじ 文字列の表示位置を空白文字で調整するととてもブサイク rjustメソッド 最大幅を決める 空白文字以外も使える まとめ 文字列の表示位置を空白文字で調整するととてもブサイク ターミナル上にとある文字列を出力させるコマンドを作っていた時、…

【Ruby】ファイルの中身をぶっこ抜け!(Fileクラス・IOクラスを使ってファイルの中身を取得します)

もくじ もくじ したいこと やり方 Fileクラス IOクラス readメソッド まとめ したいこと 任意のファイルから中身を取り出したい。※今回の記事ではファイルという言葉の中にディレクトリは含みません。 やり方 結論からいうと、 file = File.open("hoge") con…

【Ruby】ファイルの詳細な情報をまとめてゲットするゾ

したいこと 特定のファイルの詳細な情報(ファイルのサイズ・タイプ・オーナーのユーザID等)を取得したい。 ※以下、この記事内でファイルという言葉を使う場合は基本的にディレクトリも含んでいます。 File::Statクラス あるファイルの詳細情報を取得したい…

【Ruby】case文をハッシュに置き換えると幸せになれるかもしれない話

rubocop大先生に怒られる 先日あるプログラムを書いていて、一応実装が終わったのでrubocop大先生の検閲を受けた際、こんなふうにoffenceが出て怒られました。 Style/HashLikeCase Consider replacing case-when with a hash lookup どうやら「可能であればc…

【Ruby】カレントディレクトリのファイル名を取得する(隠しファイル込み)

したいこと カレントディレクトリに存在するファイル・ディレクトリの名前を取得したい。隠しファイルの名前も取得したい。 ※以下、この記事中ではファイルという呼び方ばかり使っていますが、基本的にディレクトリも含んでいると考えてください Dirクラス …

【Ruby】IndexErrorを起こさずに要素数の異なる二次元配列(配列の配列)をtransposeする

したいこと RubyのArrayクラスが持つインスタンスメソッドtransposeはレシーバとなる二次元配列内の要素数が一致していないとIndexErrorが発生して上手く動かないため、それを避けるために各配列の要素数を揃える処理を書きたい。 二次元配列って何さ? 二次…

自己紹介

始めまして。ham-cap(ハムキャップ)と申します。 今日からフィヨルドブートキャンプというプログラミングスクール(コミュニティ?)でWeb開発について学び始めました。 カリキュラムの中にアウトプットの練習としてブログ開設も含まれていたのと、もとも…