2021-05-01から1ヶ月間の記事一覧
subject { Customer.new_by_entity(entity) } its(:house_company_code) { is_expected.to eq entity.house_company_code } itsで expect(Customer.new_by_entity(entity).house_company_code).to eq entity.house_company_code と同じことになる 参考 http:…
照合順序 文字コード+言語名+比較法で構成される 例) utf8mb4_unicode_ci sql実行時にcollateを指定することでオーバーライドすることもできる。 その場合文字コードが違う場合はオーバーライドできない。 unicode の方はあいまいな照合が可能で全角、半…
実行したsqlが表示される。 参考 https://takami-hiroki.hatenablog.com/entry/20101027/p1
具体的には、フレームワークの読み込み&gemの読み込みが終わったタイミングで読み込まれます。 開発環境・テスト環境・本番環境全てで読み込まれます。 gemを入れるとそのgemの設定ファイルが追加されたりします。自分で.rbファイルを作成して追加すること…
ページが表示される際にどこにどのくらいの時間がかかっているかを表示してくれるgem 参考 https://nishinatoshiharu.com/usage-rack-mini-profiler/
railsにはページキャッシュ、アクションキャッシュ、フラグメントキャッシュがある。 ページキャッシュ、アクションキャッシュはあまり使われずgemとして切り出されてdefaultでは使用できない。 参考 https://postd.cc/the-complete-guide-to-rails-caching/
クエリを生成するための条件を持っておいて必要に応じてSQLクエリを実行する。 その結果からオブジェクトを作成してくれる。 参考 https://spirits.appirits.com/doruby/8831/
駆動表と内部表はオプティマイザの判断により入れ替わる。 SELECT count(*) FROM `cars` INNER JOIN `parts` ON `parts`.`car_id` = `cars`.`id` 上記sqlでも場合によってpartsが内部表になることもある。 explainで最初の行が駆動表。 参考 https://enterpr…
joinsは内部結合 どちらかのテーブルにしかないレコードは除外される
join先のテーブルでwhere句を使いたい時はeager_loadを使う 参考 https://love-and-geek.caraquri.com/back-end-rails-slow-query/
共通化せず、分けることが重要です。同じ操作の箇所はそこを関数化することで、重複した処理を書かずに済みます。 無理に共通化しようとすると一つのメソッドで書けるかもしれないが複雑になりがちで機能追加などの際にメンテナンス性が悪くなる。 参考 http…