Bamboo Note

Written by@Ryutaro
日々学習した技術系のアウトプットをしていきます。学習内容: Ruby, Ruby on Rails, Go, TypeScript, Docker

GitHub

すぐにRails6 x MySQL x docker-compose環境構築

よく動作確認や学習用でRailsプロジェクトを作成したいときがあるので、備忘録として残しておきます。 ファイルの作成が面倒なときは Githubに用意してあるので、クローン後READMEに従って環境構築を行ってください。 quick build rails6 mysql environment | github ファイルの用意 以下のファイルを任意のディレクトリに用意 Gemfile Gemfi…

【Rails】Model(モデル)のscope(スコープ)ってなんだろう?を解決する

モデルにおけるscopeってなんですか? Railsを学習していて次のようなコードを発見しました。「モデルのscopeってなんだろう?」ということで調べて記事にしました。 ひとまずRailsガイドで調べてみました。Rails ガイド Active Record - 14.スコープ スコープを設定することで、関連オブジェクトやモデルへのメソッド呼び出しとして参照される、よく使用されるクエリを指定す…

Rails API - 複数テーブル(親子テーブル)を結合して必要なカラムだけをJSONで返却したい

今回のゴールは次のようなレスポンスを返すことです。 期待するレスポンス UsersテーブルとPostsテーブル 背景 ブログ記事(Post)一覧をGETで取得するする際にブログ記事を書いたユーザー(User)も一緒にJSONで返したいとなったときに使います。 ルーティングの設定 でにリクエストが来ることを想定しているので、でルーティングの設定をします。 エンドポイント 今回レスポンスとして返し…

【Rails】モデルをgeneratorで作成するときに外部キー(FK)を設定する(references)

Postモデルを作成する段階で、を外部キーとして設定したい 次のmigrationファイルが作成される がとして設定されるので、適所ユニーク制約やNOTNULL制約などを設定してする スキーマ(schema.rb) スキーマを確認すると、でが設定されており、が貼られた状態で作成されていることが分かります。

LeetCodeでRubyとアルゴリズムを学びたい#2【66. Plus One】

今回の問題が「Plus One」という問題に挑戦しました。 次のような整数の配列が渡されるので、して返す関数を作るというのが問題です。 Example 1: Example 2: Example 3: 渡された配列を整数に変換してを足して、返すだけなので簡単に実装できそうです。 66. Plus One | LeetCode こんな感じの関数を作ります。 型を変換してして型を変換して返す 処理の…

LeetCodeでRubyとアルゴリズムを学びたい#1【67. Add binary】

今まではpaizaのスキルチェックで試行錯誤してプログラミングの練習をしていました。ただpaizaのルール上ソースコードの公開ができず、他の人のコードを見ることが出来ません。 そこで見つけたのがLeetCodeなるGAFAなどで出題されているコーディングテストの問題が公開されているサービスを発見したので、挑戦してみました。 2つの2進数を足して合計を返したい 今回は挑戦した問題が「Add Bin…

【Rails】ActiveRecordの`find_by`で大文字と小文字を区別しないで取得する方法

はじめに メソッドで値を取得する際にハマったので解決方法を探してみました。 以上の環境で確認検証しました。 検索対象と検索したい文字列を大文字に変換 保存されたタグを取得する際、大文字と小文字の違いで期待した値を取得することができない。 Tags テーブルに保存された値はと保存しているためメソッドでと検索しても取得することができません。 ユーザーがタグを検索したい場合、や、など様…

【Ruby】配列を操作するときに便利そうなメソッド達「compact, flatten, flat_map, index, min/max...など」

compact/compact! | nilを取り除く empty? | 配列内の要素が空かを調べる 配列の要素数が0 の場合に true flatten/flatten! | 入れ子になった配列を平坦にする flat_map | mapとflattenを組み合わせたようなメソッド mapを使うと配列の配列(ネスト)した状態で返ってくる ネストされていないフラットな配列が返ってくる index …

RubyプログラミングでRSpecを使う

Railsではなく純粋なRubyプログラムでRSpecを使ったテストできるように導入までの手順を残しておきます。 環境 RSpecをインストール RSpecをインストールする。このとき依存関係のあるGemも同時にインストールされる。 インストールされたRSpec関連のGem 以下6つのGemがインストールされる。 RSpec —init インストール後に初期化して初期ファイルを作成。 …

nodeを再インストールしたらnode-Sassが見つからないと怒られた、ERROR #98123 WEBPACK ... Node Sass could not find a binding for your current environment

環境 nodeを再インストールした結果、タイトルのエラーが発生した可能性があります。 原因 次のコマンドを実行した結果Webpackでバンドルできないという内容のエラーが発生しました。エラーの原因はが次のパスで見つからないことが原因のようです。 解決方法 が見つからないようなので、エラーメッセージで指示されている次のコマンドを実行 これでが正常に起動しました。