タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

RubyとRailsとActiveRecordに関するYassLabのブックマーク (10)

  • 現代のRailsで不要になったgem 5+1選(翻訳)|TechRacho by BPS株式会社

    概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: 5 gems you no longer need with Rails | Arkency Blog 原文公開日: 2025/06/26 原著者: Paweł Pacana コンサルタントの仕事をやっていると、Railsコードベースのレビューを行うこともたびたびあります。Railsアプリの多くは、よくできた最新バージョンのRailsRubyで開発された、まっさらなアプリ(greenfield apps)ではありません。しかし最新ではなくても、ビジネスの成功を支えてきたのです。そうしたアプリをスムーズかつ安全に運用するには、フレームワークのメンテナンス期間を過ぎてしまわないための工夫が多少なりとも必要になってきます。 アップグレードプロセスの中で、最も楽なのはRails自身のアップグレードです。フレームワークやその構成要素同士

    現代のRailsで不要になったgem 5+1選(翻訳)|TechRacho by BPS株式会社
    YassLab
    YassLab 2025/07/30
    "最も楽なのはRails自身のアップグレード ... フレームワークやその構成要素同士の連携はうまく取れているので、新しいフレームワークのデフォルト設定を1つずつ調整しつつ、段階的にアップグレードを進めることが可能"
  • ActiveRecordでよくみるSTIをPrismaで再現する(ついでにポリモーフィックも) - Qiita

    STIについてPrismaでもできないのか検証してみました。なお、なるべくの時間短縮のため、コードや図の内容はChatGPTにヒントをもらいながら実装していますので、誤りがあればご連絡いただけると幸いです。 STI(Single Table Inheritance) Single Table Inheritance(STI)は、複数のモデルを単一のデータベーステーブルに収納できるオブジェクト指向パターンの1つです。RailsのActiveRecordが代表的ですが、他のプログラミング言語のフレームワークにも同じ概念を実装しているものもあります。 クラス図を以下のように定義します。 DBとしてはCar、Truckは存在せずVehicleだけが作成されます。これが名前の由来となってることがわかると思います。(Single Table→テーブル1つ) Ruby + ActiveRecord Ru

    ActiveRecordでよくみるSTIをPrismaで再現する(ついでにポリモーフィックも) - Qiita
    YassLab
    YassLab 2024/12/23
    “ActiveRecord + Ruby で実装 - 当たり前ですがRuby + ActiveRecordではいとも簡単に実装可能です。DBの設定やMigrationなどは省きます。/ Prisma + TypeScript - 作るのが面倒なのでやめました(笑)”
  • Kaigi on Rails 2024 に「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇します - Classi開発者ブログ

    こんにちは、ソフトウェアエンジニアの中村 ( id:kozy4324 ) です。 2024年10月25日 (金) から 26日 (土) に、東京の有明セントラルタワーホール & カンファレンスで開催予定の Kaigi on Rails 2024 にて、「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇させていただくことになりました。 今回は、このテーマを選んだ背景や、登壇を通じて達成したいことについて、事前にお伝えしようと思います。 Rails アプリケーション開発におけるセキュアコーディング、できていますか? これは自戒の念を込めた問いかけでもあります。 昨年末、私は Ruby on Rails を使った新規サービス開発プロジェクトにジョインしました。それを機に、Rails におけるセキュアコーディングを再確認したいと思い、情報

    Kaigi on Rails 2024 に「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇します - Classi開発者ブログ
    YassLab
    YassLab 2024/10/10
    "IPAが公開している「安全なウェブサイトの作り方」や書籍『体系的に学ぶ 安全なWebアプリケーションの作り方』が非常に参考になりました。Railsにフォーカスした内容でいえばRailsガイド「Railsセキュリティガイド」は必読"
  • ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)

    問題 ActiveRecordクイズです。SQLインジェクション可能なのはどれでしょう? (Railsバージョンは7.1.3.4、複数回答あり) 1️⃣ User.find_by(id: params[:id]) 2️⃣ User.where("id = #{params[:id]}") 3️⃣ User.order("id #{params[:order]}") 4️⃣ User.exists?(params[:id]) 正解と解説 SQLインジェクション可能なのは 2️⃣ と 4️⃣ 1️⃣ User.find_by(id: params[:id]) エスケープ処理が入るため これは安全な呼び出しです。 Railsガイドにも引用があります。 Model.find(id)やModel.find_by_*(引数)といったクエリでは自動的にこの対策が適用されます。 2️⃣ User.wher

    ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)
    YassLab
    YassLab 2024/07/22
    “ユーザー入力を直接渡すな!という話はそれはそう。大前提としてそれはまず最初に守らなければならない / Brakemanというツールが最近気になっている。Railsに特化したセキュリティの静的解析ツールです。”
  • [Rails]あ…ありのまま、今起こった事を話すぜ!「おれはorder(created_at: :asc)と実装したと思ったら、created_at descのSQLが実行されていた」 - Qiita

    な… 何を言っているのかわからねーと思うが おれも 何をされたのか わからなかった… 頭がどうにかなりそうだった… reverse_orderをチェーンしていただとか超スピードだとか そんなチャチなもんじゃあ断じてねえ もっと恐ろしいものの片鱗を味わったぜ… ということで、前置きはここまでにして実際に私が体験した話です。 タイトルの通りorder(created_at: :asc)と実装したのに、SQLcreated_at descと実行される実装について説明します。 ここまでの話だけで、パッと実装が思い浮かぶ方はActiveRecordマスターだと思います…! 私は10年弱Rails触っていますが、初めて気づきましたw 実装 わかってしまえば、やり方は簡単です。 Userというモデルがある場合、下記実装では発行されるSQLのorderは逆になります。

    [Rails]あ…ありのまま、今起こった事を話すぜ!「おれはorder(created_at: :asc)と実装したと思ったら、created_at descのSQLが実行されていた」 - Qiita
    YassLab
    YassLab 2024/07/03
    “SQLには最後の値のみを取得する命令がありません。一方、先頭の値であれば、limit 1で取得できます。そのためSQLで最後尾の値を取得したい場合はorderを逆にして先頭の値のみを取得する / 効率の良いSQLに変換”
  • 『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか

    2024/04/24(Wed)に行われたGotanda.rb#58の登壇資料です。 https://gotanda-rb.connpass.com/event/315058/ 『Railsオワコン』と言われる時代に、なぜブルーモ証券はテックスタックの1つとしてRailsを選んだのかの解説資料です。

    『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
    YassLab
    YassLab 2024/04/25
    "お金以外の部分(アプリのAPIサーバ、管理画面)=Ruby on Rails - ORMやmigration、テストのフレームワークとか個別に選ぶ必要がない:考慮・調査工数を大幅に削減できる / お金を取り扱う部分=Golan(Gin with Ent)"
  • 14 tools every Ruby developer will love for performance and debugging"

    Product Performance, Product Scaling, & Technical Assessments

    14 tools every Ruby developer will love for performance and debugging"
    YassLab
    YassLab 2024/03/29
    “This one is not a gem, but eh, did you know you can hit the /rails/info/routes route in Rails and get a list of your routes? No need to call bin/rails routes. Plus, it’s searchable, and you can toggle between the path and URL helper. Great when you need a quick copy-paste for your views. ”
  • activerecord-originator をリリースしました - pockestrap

    こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見るのが早いでしょう。次のログはArticlesController#indexで実行されるクエリの例です。 Article Load (0.1ms) SELECT "articles".* FROM "articles" WHERE "articles"."status" = ? /* app/models/article.rb:3:in `published' */ AND "articles"."category_id" = ? /* app/controllers/artic

    activerecord-originator をリリースしました - pockestrap
    YassLab
    YassLab 2024/03/14
    "SQL の組み立てが複雑になると、この gem が真価を発揮 / そのクエリがどのように組み立てられたかがピンポイントで分かる / default_scope のような、どこで付与されたのか分かりづらい条件をデバッグする際にも役立つ"
  • ActiveRecord で integer 型カラムの数値範囲に制限をかける

    Rails の ActiveRecord で、数値型のカラムに対して数値範囲の制限をかける方法について備忘録としてまとめます。 結論 migration ファイルで指定する limit は大きさではなくバイト数 Model 側で numericality validates を設定したほうがよさげ 有効/無効 のような数種類のフラグや選択式の値を管理するなら、enum の方がわかりやすい やりたかったこと モデル名やカラム名は架空のものですが、以下のように、integer 型のカラム(:age, :account_status)に入る数値に以下のような数値範囲の制限をかけたかったのです。 カラム 制限

    ActiveRecord で integer 型カラムの数値範囲に制限をかける
    YassLab
    YassLab 2024/03/08
    “ t.integer :age, default: 0, limit: 19, comment: "年齢" / これは間違いで、この場合、age カラムは 19 バイトの制限をかけようとしているということになります。 / Active Record マイグレーション - Railsガイド”
  • Rails: 認証gem 'Rodauth'を統合するrodauth-railsを開発しました(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: What It Took to Build a Rails Integration for Rodauth | Janko's Blog 原文公開日: 2022/10/12 原著者: Janko Marohnić 日語タイトルは内容に即したものにしました。 参考: 週刊Railsウォッチ20221025 RodauthをRailsと統合するのに必要だったこと 以下のrodauth-rails READMEもどうぞ。 Rails: 認証gem ‘rodauth-rails’ README(翻訳) Rodauthが登場した当時の既存のソリューションは、Rails(DeviseやSorceryの場合)か少なくともActive Record(Authlogicの場合)が必要だったので、ついにRailsに縛られないフル機能の認証フレームワ

    Rails: 認証gem 'Rodauth'を統合するrodauth-railsを開発しました(翻訳)|TechRacho by BPS株式会社
    YassLab
    YassLab 2023/02/28
    “Railsで使うときの利便性をそれらと同じ水準まで高める必要がありました。つまり、Railsフレームワークに深いレベルで統合し、コードの置き場所を明確にし、手軽に始められるデフォルト値を用意する必要があった”
  • 1