並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 16 件 / 16件

新着順 人気順

activerecordの検索結果1 - 16 件 / 16件

  • Railsのモデル名をすべて変更した話 - SmartHR Tech Blog

    SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいということで、モデルをネストした構造にしていました。 例えば、 User に紐づくプロフィール画像 User::ProfileImage は、 app/models/user/profile_image.rb に配置する具合です。 パッと見の構造が分かりやすいのですが、時が経つにつれて次のようなつらさが顕在化してきました。 Railsの規約(推奨ルールのようなもの)に則っていないので、関連定義が冗長になる テーブル名が長くなる。 外部キーや関連名が長くなる。 関連名と外部キー名が一致せず、カラムを呼び出したいときにDB定義を見ないと

      Railsのモデル名をすべて変更した話 - SmartHR Tech Blog
    • やさしいActiveRecordのDB接続のしくみ

      https://kaigionrails.org/2023/talks/kubo/

        やさしいActiveRecordのDB接続のしくみ
      • 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
        • ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog

          注意喚起の記事になります。タイトルが結論です。 既にこの問題に言及している記事はいくつかあるのですが*1、私は気付かずに踏んでしまったので、タイトルで「おっと、うちは大丈夫かな」と思ってもらえるようにこの記事を書いています。 joinableとは何か 問題として挙げているjoinableオプションですが、これはネストしたトランザクションの挙動に影響を与えます。少しややこしいので、サンプルコードを見せながら説明します。 # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem "activerecord", "7.

            ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog
          • GitHub - instant-dev/instant: JavaScript API framework with ORM, migrations and vectors

            instant.dev provides a fast, reliable and battle-tested ORM and migration management system for Postgres 13+ built in JavaScript. For those familiar with Ruby on Rails, instant.dev adds functionality similar to ActiveRecord to the Node.js, Deno and Bun ecosystems. We have been using it since 2016 in production at Autocode where it has managed over 1 billion records in a 4TB AWS Aurora Postgres ins

              GitHub - instant-dev/instant: JavaScript API framework with ORM, migrations and vectors
            • Rails: Active Recordのfindで怖い思いをした話(翻訳)|TechRacho by BPS株式会社

              概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: A scary side of ActiveRecord's find | Arkency Blog 原文公開日: 2019/03/19 原著者: Jakub Kosiński サイト: Arkency Blog 日本語タイトルは内容に即したものにしました。 参考: Rails API find -- ActiveRecord::FinderMethods 参考: Object#tap (Ruby 3.2 リファレンスマニュアル) 私は最近プロジェクトでこんなリファクタリングを行いました。identityに束縛されたコンテキストにドメインイベントをさらに追加することで、システム内のidentityに対して実行された特定のアクションから取得する監査ログを改善するというものです。手始めに、コマンドを消費する責務を持つServiceを

                Rails: Active Recordのfindで怖い思いをした話(翻訳)|TechRacho by BPS株式会社
              • そろそろ理解する includes / Understanding includes

                RubyKaigi 2024 直前LT祭の発表スライドです。 https://timeedev.connpass.com/event/315946/ スライド内の includes クイズを手元で動かすためのスクリプト: https://gist.github.com/euglena1215/fb6cd1235278491dc206b9bd6feaf71e

                  そろそろ理解する includes / Understanding includes
                • Rails: Active Record属性のデフォルト値はコールバックよりもdefaultオプションで設定しよう(翻訳)|TechRacho by BPS株式会社

                  概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Assign a default value to an attribute in Active Record - Andy Croll 原文公開日: 2023/03/13 原著者: Andy Croll 日本語タイトルは内容に即したものにしました。 以下のAPIドキュメントもどうぞ。 Rails: ActiveRecord標準のattributes APIドキュメント(翻訳) Active Recordモデルのインスタンスにデフォルト値を設定する必要が生じたことのある人は、おそらくコールバックでデフォルト値を設定したことがあるでしょう。 実はRails 5.0からもっとよい方法があるのですが、最近まで気づいていませんでした(Mosesに感謝します!) 参考: §2.3 Active Record属性API -- Ruby on

                    Rails: Active Record属性のデフォルト値はコールバックよりもdefaultオプションで設定しよう(翻訳)|TechRacho by BPS株式会社
                  • Active Recordで関連先を保存するときに気をつけること - おもしろwebサービス開発日記

                    先日、仕事でRails(Active Record)の難しい仕様に遭遇したので共有するためにエントリをしたためました。似たようなケースに遭遇した人の手助けになれば幸いです(\( ⁰⊖⁰)/) 対応Railsバージョンと設定 Rails6.1以上 config.active_record.has_many_inversing = true(Rails6.1のデフォルト設定)である 問題1 まず次のコードを読んでみてください。 class User < ApplicationRecord has_many :posts end class Post < ApplicationRecord belongs_to :user, inverse_of: :posts # (1) before_update { puts 'before_update' } end user = User.new po

                      Active Recordで関連先を保存するときに気をつけること - おもしろwebサービス開発日記
                    • 14 tools and gems every Ruby developer would love

                        14 tools and gems every Ruby developer would love
                      • has_manyにブロック引数を渡してリレーションを拡張する|TechRacho by BPS株式会社

                        今日はhas_manyのブロック引数に関して取り上げます。 以下のモデルを想定します。 # attributes # # name: 氏名 # attendance_count: 出席回数 class Student < ApplicationRecord has_many :exams end # attributes # # student_id: 学生ID # subject: 教科 # period: テスト実施回 # score: 得点 class Exam < ApplicationRecord belongs_to :student end スコープブロック has_many のブロックと聞くとまずスコープブロックが思いつくと思います。 今回のテーマのブロック引数とは異なりますが、先にスコープブロックに関して触れていきます。 スコープブロックは has_many の第2引数に

                          has_manyにブロック引数を渡してリレーションを拡張する|TechRacho by BPS株式会社
                        • 『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか

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

                            『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
                          • Rails: Active RecordでRepositoryパターンを実装する(翻訳)|TechRacho by BPS株式会社

                            概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Repository implementation on ActiveRecord | Arkency Blog 原文公開日: 2023/12/28 原著者: Paweł Pacana Repositoryは本質的に、ドメインオブジェクトをその永続化方法から切り離して、それらにアクセスするための限定的なインターフェイスを提供します。Repositoryは戦術的なパターンの一種であり、本記事の導入部で私が説明したい内容よりずっと詳しくMartin FowlerやEric Evansが解説しています。Repositoryパターンが推し進めるものは、いわゆるActive Recordパターンと真逆です。なぜパターンをわざわざ別のものに変換するのでしょうか? Active Recordパターンは両刃の剣であり、その問題はまさに最大の長所

                              Rails: Active RecordでRepositoryパターンを実装する(翻訳)|TechRacho by BPS株式会社
                            • Railsガイドにきちんと目を通して新しい知識を得る - Active Recordの関連付け編 - - PLAY BALL

                              ドキュメントを読み込むのは大事、ということでRailsガイドを頭から読んでいく取り組みをしています。 各章ごとに、(Railsガイドにちゃんと書いてあるのに)知らなかった機能を雑にまとめていきます。 今回は、Active Recordの関連付けの章です。 railsguides.jp reload_xxxと、changerd?previously_changed? リンクはこちら reload_xxx テストを書くときに、xxx.reloadみたいな使い方はよくしていましたが、関連モデルに使えるのは知りませんでした。 # (コンソールAで) book.user #=> #<User id: 1, email: "sample@example.com", created_at: ...> # (別のコンソールBで) User.find(1).update(email: 'sample02@e

                                Railsガイドにきちんと目を通して新しい知識を得る - Active Recordの関連付け編 - - PLAY BALL
                              • Rails 7.1: ActiveRecord::Baseにnormalizesが追加された(翻訳)|TechRacho by BPS株式会社

                                2023.06.06 Rails 7.1: ActiveRecord::Baseにnormalizesが追加された(翻訳) Rails 7.1: ActiveRecord::Baseにnormalizesが追加された(翻訳) Rails 7.1で、Active Recordの属性値の正規化(normalization)を宣言するメソッドが新たに追加されました。これは、ユーザー入力のサニタイズ、書式の統一、外部由来のデータのクリーンアップで特に有用です。 Rails 7.1より前は、以下のようにbefore_saveコールバックで属性を正規化できます。 model User < ApplicationRecord before_save :downcase_email, if :email_present? private def email_present? email.present?

                                  Rails 7.1: ActiveRecord::Baseにnormalizesが追加された(翻訳)|TechRacho by BPS株式会社
                                • Let's get started with Ruby && Rails Tips

                                  【オフライン開催】Omotesando.rb #96 https://omotesandorb.connpass.com/event/313860/

                                    Let's get started with Ruby && Rails Tips
                                  1