rhanda | 元銀行員Web系エンジニアの日記

実務未経験からWeb系受託開発企業に転職したひよっこエンジニアが覚えたことや日々の感情を残すブログ

Ruby

『オブジェクト指向設計実践ガイド』読みました

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者:Sandi Metz技術評論社Amazon 構成 第1章 オブジェクト指向設計 第2章 単一責任のクラスを設計する 第3章 依存関係を管理する 第4章 柔軟なインターフェー…

親コントローラに入れる処理をテストしやすくするための設計

複数あるエンドポイントについてデフォルトで実行したいフィルタを、before_actionとして親コントローラに登録したいことがありました。 当初は親コントローラでメソッド定義とフィルタの登録をして、テストは各エンドポイントのテストで行うやり方を考えて…

福岡Rubyist会議03の参加レポート

概要 2/18に開催された福岡Rubyist会議03に出席しました。 その時の学んだメモや感想を簡単にまとめます。‍♀️ 感想 RubyKaigi2022に続いて2度目のカンファレンスオフライン参加でした。 事前にタイムスケジュールを見た時から「RubyKaigiよりも理解できる内…

request specのファイル名は複数形・単数形どちらにすべきか

request specを新たに追加するとき、これまであまり意識せずにファイル名を/複数形_spec.rb(ex. /users_spec.rb)としていたが、既存のrequest specで単数リソースの場合には/単数形_spec.rbとしているものもあることに気づいてどうすべきか迷ったことがあ…

Rubyの正規表現で ASCII印刷可能文字を表現する

range を使ってできました。 (' '..'~').to_a.join # => " !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 使用できる文字をASCIIの0x20から0x7Eまで(半角空白を含む半角英数記号)に制限したいこと…

Rubyプログラム実行時に、コマンドライン引数を取得できるようオプションを作成

先日カレンダープログラムの作成に取り組みました。 その中でオプション設定や、それに係るエラーメッセージの表示を初めて行ったので、メモとして残すものです。 最終的に作ったコード require 'optparse' option = {} OptionParser.new do |opt| begin opt…

RubySilver受験記

先日Ruby技術者認定試験(Silver)に合格しました。 自分もいくつかの合格記を参考に学習をしたので、記録も兼ねて残してみたいと思います。 どなたかの参考になりましたら幸いです。 前提(スキルレベル) 2020年9月に前職を退職し、6ヶ月のプログラミング学…

【Rails】MVCとは

先日、セレクトボックスで扱いたいデータの配列をモデルに定義する際に「選択肢を日本語表示したい」と思ったことから、キーを日本語名にしたハッシュを作成しました。 しかしながらモデルは「データを扱う役割」です。 「ビューでこう表示したい」や「日本…

【Rails】gemを使わないで手軽にenumをi18nに対応させて日本語化する

不用意にgemを追加すべきでない場面もあるかと思い、学習を兼ねて取り組んでみました。 また同じようなやり方をしている記事も見当たらなかったので、記録として残すものです。 前提 今回は簡単なタスク管理アプリケーションを想定し、Taskモデルに["waiting…

デプロイしていたRailsアプリケーションでThe change you wanted was rejected.が出た

当該エラー The change you wanted was rejected. Maybe you tried to change something you didn't have access to. If you are the application owner check the logs for more information. 解決プロセス ①CSRF対策説 とりあえずエラー文でググって、複数…

Webpackとは?

何度も調べまわっているような気がしたので、関連の用語をまとめてメモしてみました。 修正点・誤っている箇所等あれば、アドバイスを頂けると幸いです。 Webpackとは JavaScriptのモジュールバンドラー。 ややこしいと思ったのはWebpackerとは別物だという…

rails newをしたらPG::ConnectionBad: could not connect to server: No such file or directoryとエラーが出た

「PostgreSQLが起動していないよ」というエラーのようです。 PCの再起動によるものと思われますが、以下の方法で解決できました。 何度も遭遇している割には、復旧手順を毎回調べていると感じたので記録しておきます。 手順 ①PostgreSQLが出力するログファイ…