Rails
前提 今の案件に参画当時、Railsのローカルの開発環境でrails consoleを実行してActive RecordでのDB操作を試みたり、rails runnerでDB操作を伴うコマンドを実行したりすると以下のようなエラーが発生するという事象に遭遇しました。 ※ rails serverは正常に…
RailsでActiveRecordのfind_byにモデルのインスタンスを渡すとidに変換されるという仕様を発見しました。実務に役立つことはあまりなさそうですが、面白かったのでメモしておきます。 検証 まずは任意のモデルのインスタンスを取得します。 app(dev):004> o1…
RailsのActiveRecordでscopeを使う方法です。 scopeとはよく使う条件をメソッド化できるActiveRecordの機能です。 引数なしのパターン 以下のように定義します。 class Restaurant < ApplicationRecord # 省略 scope :south_india, -> { joins(:tags).where(…
本記事ではよく使うSQLの条件のActiveRecordでの書き方をまとめます AND条件で検索 コード1 結果1 コード2 結果2 OR条件で検索 コード 結果 IS NULL コード 結果 IN句 コード 結果 結合先のテーブルのwhere条件で絞り込む コード1 結果 コード2 whereの大小…
Railsのfind, find_by, whereの使い分けをまとめます。 find 原則は以下の仕様です。 idで検索 1件だけ取得 (SQLにLIMIT 1がつく) app(dev):001> Tag.find(1) Tag Load (2.9ms) SELECT "tags".* FROM "tags" WHERE "tags"."id" = 1 LIMIT 1 /*application='A…
Railsアプリのデバッグ手段をまとめます。Docker Compose上でRailsアプリを動かしている場合でも使える方法です。 1.ppを使う 以下のようにppでデバッグしたい変数を出力します。結論としてはこれで十分なことが多そうです。 基本形 コード class TagsContro…
Railsではformのアクションを指定する場合などにリクエストパスをベタ書きすることは少なく、xxx_pathのような自動で定義されている変数を使います。 変数名には法則があるのですが、慣れないうちはわからなくなることが多いです。 その場合はrails routeコ…
Rubyは高機能な配列関数が多くてどこまで覚えるか悩ましいですが、とりあえず1ヶ月Railsで開発して使ったものは今後もよく使うだろうということでメモしておきます。 map 配列の各要素に対して何らかの処理をした結果の新しい配列がほしい場合に使うメソッド…
結論 Railsでローカルでは動作するコードがHerokuデプロイ後にエラーになる場合は、以下のコマンドでHeokruを再起動すると解消する場合がある。 heroku restart 事象 RailsでのWEBアプリを開発で以下の改修をした。 TagモデルにTagGroupモデルへの関連を追加…
はじめに 私は仕事で3年以上Djangoを使っているが、副業でRailsを使う機会があった。同じそれぞれの言語を代表するフルスタックフレームワークだからそんなに違わないと思っていたらけっこう違ったので、感じた違いをメモしておきたい。 目次 フロントエン…