Rails
そもそもどういう事象なのかも含めて整理する。 前提としてIp Spoofing(IPスプーフィング)とは何か 送るリクエストの送信元IPを偽装してアクセスをする手法。IP制限などで特定のIPのリクエストしか受け付けない環境に対して、自身のIPを偽装をすることで制限…
表題ですべてを語るシリーズです。 検証した環境 $ bin/rails -v Rails 7.1.2 index_byとは Railsガイドの説明が簡潔なので引用する。 index_byメソッドは、何らかのキーによってインデックス化されたenumerableの要素を持つハッシュを生成します。 - Active…
便利そうだが、いとも簡単に複雑化してしまうので備忘としてメモ。 環境 $ bin/rails -v Rails 7.1.2 $ ruby -v ruby 3.2.1 (2023-02-08 revision 31819e82c8) [aarch64-linux] helper_methodの使い方 Controllerに存在するメソッドをViewで呼び出したいとき…
簡易な記録テーブルなどで、時刻などを更新をしたいときの豆知識 環境 $ rails -v Rails 7.1.2 やり方 該当レコードで .touch をすると自動的に保存がされる 例 book.updated_at # Thu, 01 Feb 2024 14:37:18.696490000 UTC +00:00 このようなレコードに .to…
すごく助かったのでメモがてら 環境 $ rails -v Rails 7.1.2 factory_bot (6.4.4) activesupport (>= 5.0.0) factory_bot_rails (6.4.2) factory_bot (~> 6.4) railties (>= 5.0.0) やり方について 今回の事例 下記のように1000レコードを作成するようなテス…
設定しているときに無視したいという特殊なケースの対策。基本は打ち消しをしないことを前提に書いたほうがよいが書かざるを得ないときにどうするかのためのメモ。 環境 $ bin/rails -v Rails 7.1.2 前提 has_manyなどの子の関連に関して、デフォルトの並び…
最初から自分が関わっていないプロダクトコードを探索する記事を書いたのですが、そこからRails特有のTipsを書き留めておきます。 考古学するときに見るといいポイント routesを常に見れる状態にする Webサービスをやっているので、大概の要望は「◯◯というペ…
N:Nの関連性のレコードをサッとつくるためのtraitを作りたい場合のtips 環境 Gemfile.lockは以下のような環境 factory_bot (6.4.4) activesupport (>= 5.0.0) factory_bot_rails (6.4.2) factory_bot (~> 6.4) railties (>= 5.0.0) 使い方 factory_botでは一…
After Kaigi on Rails LT NightでLTしたのでその登壇後記です。 発表したスライド speakerdeck.com 伝えたかったこと 認知負荷という言葉が独り歩きしがちなので、基礎的な概念を抑えてほしかった その上で自分たちの身の回りの「課題外在性負荷」を探しても…
『Kaigi on Rails 2023』の2日目に参加してきたので見たセッションメモ ちなみに1日目はこちら 各発表の感想 ※資料スライドは見つけたら貼ります。 Railsの型ファイル自動生成における課題と解決 speakerdeck.com 感想 Railsアプリケーションに段階的にRBSを…
『Kaigi on Rails 2023』の1日目に参加してきたので発表見たよメモ 見た各発表の感想 ※資料スライドは見つけたら貼ります。 スケーラブルActive Jobs with Sidekiq Enterprise さきほどの Sidekiq に関するLTのスライド、こちらに掲載しましたhttps://t.co/7…
「ActiveRecord::RecordNotFoundをraiseしたときに404になるときに静的な404ページ出しているのでそれをそのまま真似て他のエラーでもキャッチしてくれないかな」という悩みを持つ人向け 検証したバージョン $ bin/rails -v Rails 7.0.6 前提としての動きの…
migrateして更新されずあれこれ探していたので備忘として 環境 $ bin/rails -v Rails 7.0.6 実行コマンド $ bin/rails db:schema:dump rakeとしてはこのあたりで、実装としては このあたり 動きとしての補足 通常、Railsガイドでも言及されている通りdb:migr…
当たり前なんですけど、部分的に切り取ると違和感があるので言葉でまとめる 環境 config (4.2.1) gemそのもののリポジトリは以下 rubyconfig/config: Easiest way to add multi-environment yaml settings to Rails, Sinatra, Pandrino and other Ruby proje…
Rails上で render status: :not_found とかやっているが、この :not_found と 404 はどこなのか、という小ネタ。 確認した環境 $ bin/rails -v Rails 7.0.6 Railsのステータスコードのシンボル 一覧はRailsガイドにある。 レイアウトとレンダリング-2.2.13.4…
日頃のコードレビューの言語化です。 前提 Ruby on Railsのバージョンとしては6ぐらいを想定しています viewの記述にはerbを想定しております。 よくあるケース 例えば下記のようなテーブル構成をしているModelがあるとする create_table "users", force: :c…
知らなかったので備忘まで。ただし万能ではないので用法用量を守って正しくお使いください。 環境 $ rails -v Rails 7.0.6 $ ruby -v ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [arm64-darwin22] どういうものか Railsコンソールには --sandbox とい…
CSVアップロード機能のテストなどをするときにテストデータを置きたいときのメモ 出典元 file fixture - RSpec Rails - RSpec - Relish ドキュメントいわく Rails 5 adds simple access to sample files called file fixtures.File fixtures are normal file…
actionに対しての実行なのでそのとおりといえばそのとおりなんですが備忘として。 環境 $ bin/rails --version Rails 6.0.4.1 TL;DR before_actionでredirect_toをするとafter_actionでは呼ばれない 回避案はいくつかあるが、action内でredirect_toをするな…
developmentでは見れたのに、productionじゃ見れないのはなぜ…となるときに見直す設定 環境 $ bin/rails -v Rails 6.0.4.1 想定している状況 /public配下のファイルが、RAILS_ENVがdevelopmentだと見れて、productionのときに見れないときに考える設定 Rails…
Kaigi on Rails 2021 の2日目にリモート登壇してきました。 発表したスライド speakerdeck.com 伝えたかったこと before_action でインスタンス変数のセットは本当にいいことがないのでやめよう before_action の使い方がわからなくなったら横断的関心事かど…
Kaigi on Rails 2021 の一日目見たよメモです。 各発表の感想 部分的に見れていないパートがあったので見れたものだけ ※資料スライドは見つけたら貼ります。 Q&A kamipo トークについて a_matsudaさんがモデレータという形式で話が進められていった。 以下話…
表題通り違和感をまとめる。 前提としてメモ化とは Wikipedia曰く以下の通り メモ化(英: Memoization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び…
いくつに設定すればいいのかの根拠がわからない方へ 環境 今回参照したGitHubのVersionは 5.2.2 時点のもの。 出典 出典はREADME.md puma/README.md at a99331d32e762c1b9823ab44bed92d622a65b6d3 · puma/puma pumaのスレッド数に関してREADMEには以下のよう…
昔のPHPを彷彿とさせる変換だったので書き留める 環境 $ bin/rails --version Rails 6.0.3.6 どういうことか ActiveRecord::Type::Boolean.new.cast は引数をtrueあるいはfalseに変換してくれるのだが、変換の基準は以下のものに引っかかるものがfalseになる…
モジュールの部分はいらないんだけどな…というときに文字列処理をしなくても用意してくれている。 環境 $ bin/rails -v Rails 6.0.3.1 利用例 今回サンプルとして扱うのは以下のようなクラス module Hoge module Piyo class Test def initialize(test: nil) …
いろんなことの合せ技のためご利用は計画的に、という感じであるが知見まで。 環境 $ bin/rails -v Rails 6.0.3.1 今回の想定ケース 例えばUserクラスがあり、Viewにはidが2,3,1の順で並べたいのでActiveRecordの取得自体も2,3,1の順番で取得したい場合。 Us…
before_actionでインスタンス変数を設定するとミスリードが多くなりがちなのでそれに対する話。 (記事製作時)の環境 # bin/rails -v Rails 6.0.3.1 (前提として)before_actionとは ActionControllerが提供するフィルタの機能の一種。 before_action は ind…
個別に実装を剥がして行く場合のアプローチ 環境 # bin/rails -v Rails 6.0.3.1 今回想定するシチュエーション rails new したときにオプションで間引きたかったが間引き忘れたときにどうやって対応をしていくべきかというアプローチ 見るべきところ config/…
以下のツイートが気になったの調べた。 「create_or_find_by のコメントを読もう」で済む世界は最高— Takafumi ONAKA (@onk) 2020年10月27日 環境 $ bin/rails -v Rails 6.0.3.1 一覧 メソッド名 説明 find_or_create_by 対象を検索して、ない場合はCREATE(I…