コマンドラインシェルの基本操作

こんにちは! 今回はコマンドラインシェルの基本操作についてまとめます。 基本的にはUbuntu上のBashを対象としています。 コマンドの記述方法 複数コマンドを連続して実行 ;で区切って入力することで、1行に複数のコマンドを入力できる 例 date; hostname; …

「Linuxをマスターしたい人のための 実践Ubuntu」を読んだ感想

こんにちは! 今回は「Linuxをマスターしたい人のための 実践Ubuntu」を読んだ感想についてまとめます。 Linuxをマスターしたい人のための実践Ubuntu作者:水野源秀和システムAmazon おすすめ度 ★★★★★:5/5点 なぜ読んだのか Railsを学んでいく上で、作成した…

「HTML解体新書: 仕様から紐解く本格入門」を流し読みした感想

こんにちは! 今回は「HTML解体新書: 仕様から紐解く本格入門」を流し読み(1時間)した感想についてまとめます。 HTML解体新書作者:太田良典ボーンデジタルAmazon なぜ読んだのか HTMLの深さを知りたかったから HTMLは比較的簡単だと言われたり、反対に奥が…

Rubyでオブジェクトの配列を要素で並び替える方法(sort_by)

こんにちは! 今回はRubyでオブジェクトの配列を要素で並び替える方法(sort_by)についてまとめます。 やりたいこと オブジェクトの配列を要素によって並び替えたい sort_byメソッド sort_byはブロックを受け取り、ブロック内で各オブジェクトの比較する要素…

Railsでレコードが存在する場合はレコードを返し、存在しない場合は新規作成する方法(find_or_create_by)

こんにちは! 今回はRailsでレコードが存在する場合はレコードを返し、存在しない場合は新規作成する方法(find_or_create_by)についてまとめます。 やりたいこと ある条件のレコードが存在しなければ追加したい すでにレコードが存在すればそのレコードを取…

Railsで重複しない値を取得する方法(distinct)

こんにちは! 今回はRailsで重複しない値を取得する方法(distinct)についてまとめます。 やりたいこと DBから重複した値を除外して取得したい distinctメソッド SQLのDISTINCTと同様に重複を除外する 使用例 # Itemモデルから重複しないレコードを全て取得 I…

Railsで特定のカラムのデータを配列で取り出す方法(pluck)

こんにちは! 今回はRailsで特定のカラムのデータを配列で取り出す方法(pluck)についてまとめます。 やりたいこと DBから特定のカラムの要素を取り出したい pluckメソッド 指定したカラム名の値を取り出せる 使用例 # Itemモデルからname列を取得 Item.pluck…

Railsでlink_toをpostに変更できなかった

こんにちは! 今回はRailsでlink_toをpostに変更できなかったことについてまとめます。 やりたかったこと link_toをPOSTメソッドで送信 事象 <%= link_to "送信", :clear_items, method: : post %> 上記リンクがGETで送信されてしまう 環境 Rails 7.1.3 Ruby…

Railsでフォームのボタンで条件分岐してビューの内容を変更する方法

こんにちは! 今回はRailsでフォームのボタンで条件分岐してビューの内容を変更する方法についてまとめます。 やりたいこと アイテムを登録するフォームがある 初回の登録は「追加」ボタンを表示 2回目の登録は「比較」ボタンを表示 環境 Rails 7.1.3 Ruby 3…

RailsでCreateアクションが動かなかった

こんにちは! 今回はRailsでCreateアクションが動かなかったことについてまとめます。 起きたこと 新しく作ったRailsアプリでcreateアクションが動かなかった new.html.erbにフォームを作成し、submitでcreateアクションが動くはずだった createアクション内…

Ngrokを使ってRailsに外部からアクセスする方法

こんにちは! 今回はNgrokを使ってRailsに外部からアクセスする方法についてまとめます。 Ngrokとは Ngrok(エングロック)はローカルのサーバーに外部からアクセスできるようになるサービス ngrok.com リバースプロキシサーバーとして働く 名前 動作 プロキ…

DockerでRails7.1の環境を構築する際にはまったポイント

こんにちは! 今回はDockerでRails7.1の環境を構築する際にはまったポイントについてまとめます。 Rails7.1からの変更点「rails newでDockerfileが自動生成される」 Rails7.1から、rails newをした際に自動的に本番環境用のDockefileが作成される 自分で作成…

DockerでRails環境を構築する方法

こんにちは! 今回はDockerでRails環境を構築する方法についてまとめます。 はじめに docs.docker.jp クイックスタートガイドに基づいて解説 手順 Dockerfile、Gemfile、Gemfile.lock、docker-compose.ymlの作成 docker compose run web rails new . --force…

Railsのモデル間の関連付けについて

こんにちは! 今回はRailsのモデル間の関連付けについてまとめます。 モデル間の関連付けとは テーブルとテーブルを結びつけて扱いやすくすること テーブル間の関係により、1対多の関連付けや多対多の関連付けなどがある 1対多の関連付け 一つのレコードは一…

Ubuntuのキーボード関係の設定

こんにちは! 今回は自分のUbuntuのキーボード関係の設定についてまとめます。 環境 Ubuntu 22.04 ※環境を表示するコマンドはlsb_release -a キーボードの設定 入力ソース 日本語(Mozc)を使用 キー配置はUS配置 ソースはMozcだけで英語の入力と日本語入力…

Railsでネストされたリソースの使い方

こんにちは! 今回はRailsでネストされたリソースの使い方についてまとめます。 ネストされたリソースとは 1対多の関連付けがされたモデルを扱う方法 MemberがEntryを所有するような関係で利用する 前提 Memberモデルにはhas_many: entriesの関連付けがされ…

Failure/Error: require_relative "../config/environment"のエラーでRSpecが動かないときの対処法

こんにちは! 今回はFailure/Error: require_relative "../config/environment"のエラーでRSpecが動かないときの対処法についてまとめます。 事象 Ruby on Rails 6 実践ガイドのChapter7で、RSpecを実行したら下記のエラーが出てテストが実行できなかった Ru…

Macのターミナルで使えるショートカット

こんにちは! 今回はMacのターミナルで使えるショートカットについてまとめます。 ショートカット ショートカット 動作 Ctrl + A 行頭へ移動 Ctrl + E 行末へ移動 Ctrl + H 一つ前の文字を消す (Backspace) Ctrl + D 一つ後の文字を消す (Delete) Ctrl + W …

1月の学習記録まとめ

こんにちは! 今回は1月の学習記録まとめです。 1月の学習記録 総学習時間:156時間 感想 Railsを始めました これまで学んできたことが全て活用されていると感じています 特にHTML/CSSとSQLは必須でした Git, Dockerも不可欠な存在であり、先にRailsに手をつ…

Railsでレコードからデータを取り出す方法

こんにちは! 今回はRailsでレコードからデータを取り出す方法についてまとめます。 クラスメソッド findメソッド member = Member.find(3) idでレコードを取り出す(idカラムから検索) 存在しないidを指定すると例外が発生する find_byメソッド member = M…

CSSでテーブルの列幅を指定する方法

こんにちは! 今回はCSSでテーブルの列幅を指定する方法をまとめます。 やりたいこと テーブルの列ごとに幅を固定したい 方法 table { table-layout: fixed; width: 100%; } th:nth-child(1) { width: 30%; } th:nth-child(2) { width: 70%; } tableにtable-…

Railsのselect_tagに初期値を設定する方法

こんにちは! 今回はRailsのselect_tagに初期値を設定する方法をまとめます。 やりたいこと select_tagで指定した値が最初から選択された状態にする 方法 options_for_selectの第2引数にselected: 初期値を指定する コード例 <% year_options = options_for_…

Rails(SQLite3)の期間指定の方法

こんにちは! 今回はRails(SQLite3)の期間指定の方法についてまとめます。 環境 Rails 5.2.8.1 やりたいこと DBから作成日時の年ごと、月ごとでデータを取得したい 方法 年ごとに取得 where("strftime('%Y', created_at) = '2024' ") 月ごとに取得 where("…

Railsのlocalesファイルの書き方

こんにちは! 今回はRailsのlocalesファイルの書き方についてまとめます。 環境 Rails 5.2.8.1 階層構造 localesの中のja.ymlは次のような構造で表現される 階層 例 1 ja 2 activerecord, date, time 3 models, attributes,errors, formats 4 モデル名、属性…

Railsで単数リソースとform_forを使う方法

こんにちは! 今回はRailsで単数リソースとform_forを使う方法についてまとめます。 単数リソースとは 一つだけの値を持つリソース 専用のモデルは持たずに、他のモデルの1レコードだけを扱うことがある Sessionを扱う時にも使用する 単数リソースのルーティ…

「事業分析・データ設計のためのモデル作成技術入門」を流し読みした感想

こんにちは! 今回は「事業分析・データ設計のためのモデル作成技術入門」を流し読み(1時間45分)した感想をまとめます。 事業分析・データ設計のためのモデル作成技術入門作者:佐藤 正美技術評論社Amazon なぜ読んだのか 0からのデータベース設計について…

CSSの包含ブロックとheightについて(height: 100%が効かない場合)

こんにちは! 今回はCSSの包含ブロックとheight(height: 100%が効かない場合)についてまとめます。 包含ブロックとは 直近の親要素 heightに%を指定した場合の計算方法 包含ブロックの高さに対して%が計算される 包含ブロックの高さは明示的に指定していな…

Railsの正規表現\Aと\zについて

こんにちは! 今回はRailsの正規表現\Aと\zについてまとめます。 \Aと\zは文字列の先頭、文字列の末尾を表す \Aは文字列の先頭を表す \zは文字列の末尾を表す ^と$は行頭と行末を表す ^は行頭を表す $は行末を表す フォームのバリデーションに使用するなら\A…

Railsでのフォームの作り方 その2

こんにちは! 今回はRailsでのフォームの作り方 その2です。 環境 Rails 5.2.8.1 フォームを作る2つの方法 form_tagを使う方法 以前の記事でまとめた内容 モデルと関係のないフォームを作る場合に使用する na-ah.hatenablog.com form_forを使う方法 今回ま…

Railsでのlink_toの使い方

こんにちは! 今回はRailsでのlink_toの使い方についてまとめます。 link_toメソッドの使用例 <%= link_to "example.com", "http://example.com" %> <%= link_to "一覧", members_path %> <%= link_to "一覧", :members %> <%= link_to "編集", [:edit, memb…