タグ

activerecordに関するmonochromeganeのブックマーク (13)

  • ActiveRecordの読み込みが実際にトリガーされた場所をログに記録するgem - Qiita

    ActiveRecordは必要になるまでDB読み込みをしません。 なのでやたら複雑なビューの中でクエリを弄ったり、コントローラーが肥大化してる状態でひどいSQLがログに流れてくると、パっと見ではどこが原因なのかすぐに分からない。 なので、SQLが実行された時にそれが実際にトリガーされたソースコードの位置も一緒にログに吐いてくれるgemを作りました。 bulletで分からないような、ビューのループの中で直接モデル読んでるみたいなヤバイ箇所を速やかに見つけるためのものです。 joker1007/activerecord-cause 仕組み的にはActiveRecordのロギングの仕組みを丸パクリしてcaller_locationsを足した感じ。 全ての読み込み位置を表示するわけではなく正規表現でマッチするパスを持ったソースコードの位置のみをログに記録します。 Railsで利用する場合は自動的に

    ActiveRecordの読み込みが実際にトリガーされた場所をログに記録するgem - Qiita
  • Rails3 - Active Record Query Interface | akkunchoi@github

    準備 オブジェクトをひとつだけ取り出す find - 主キーによる検索 first last 複数のオブジェクトを取り出す 複数のオブジェクトをまとめて処理する find_each find_in_batches ActiveRecord::Relation Where Order Select Limit, Offset Group Having 上書き - Overriding 読み込み専用 - Readonly ロック - Locking 楽観的ロック 悲観的ロック Join ActiveRecordのクエリーインタフェースの解説 を参考に、コードを書いて確認していきます。 準備 bundlerでインストールします。 # Gemfile source 'https://rubygems.org' gem "activerecord", "~> 3.2.12" gem 'sqlite3

  • ActiveRecord のモデルを整理する7つのパターン - tkawachi Blog

    7 Patterns to Refactor Fat ActiveRecord Models という記事があり、読もう読もうと思いつつ1年くらい経ってしまった。 ようやく読んだので理解した内容を書いておく。 コード例は元記事のもの。 Rails で thin controller, fat model を心がけていると、model がマジで激太りしてヤバくなる。 実際に自分が仕事で書いている rails アプリも激太りしててヤバい。 この blog の筆者が作っている CodeClimate で C 判定をもらう程度には肥満体型になっている。 Mixinに抜き出さない! Model が太ってきた時に考えるのは ActiveSupport::Concern を使って感心事を抜き出して、Mixin にすることだと思う。 実際に手元のアプリでも models/concerns/ なんていうディレ

  • Active Record Associations — Ruby on Rails Guides

    このガイドでは、Active Recordのアソシエーション機能を説明します。このガイドを読むことによって、以下のことが学べます: Active Recordモデル間のアソシエーションの宣言方法 Active Recordアソシエーションの種類の理解 アソシエーション作成によってモデルに追加されるメソッドの使い方 1 何故アソシエーション? モデル間のアソシエーションは何故必要でしょうか?アソシエーションによって、コードでよくある操作が単純化できます。例えば、Customer のモデルと Order のモデルを持っている単純なRailsアプリケーションを想像しましょう。各 Customer には複数の Order が存在する場合があります。アソシエーションがなければ、次のようにモデルを宣言する必要があります:

    Active Record Associations — Ruby on Rails Guides
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
  • ActiveRecord::Base の setter メソッドの謎 - elm200 の日記(旧はてなダイアリー)

    仕事仲間から ActiveRecord::Base#[:属性名]= と ActiveRecord::Base#(属性名)= の違いをたずねられた。 そこでちょっとしらべてみた。 たとえば Entry という AR クラスがあるとして、そこに title という属性があるとしよう。 entry = Entry.find(:first) entry.title # => "Hello World!" entry[:title] # => "Hello World!" entry.title = "こんにちは" v[:title] = "おはよう" のように entry[:title] と entry.title の両方を使うことができるのだ。 ActiveRecord::Base#, ActiveRecord::Base#= の定義は以下のとおり。 def [](attr_name) read

    ActiveRecord::Base の setter メソッドの謎 - elm200 の日記(旧はてなダイアリー)
  • Rails雑感 - 愛と勇気と缶ビール

    最近、いわゆるRailsの古めのバージョンで書かれたプチレガシーな感じのアプリケーションを触っていて思ったこと。 ちなみに、この話題は多くの人にとって大分今更感のある内容なので、逆にこれを読んで「今更だなぁ、そんなのとっくに結論出てるでしょ」と思わない人はヤバい。 めんどくさいのでデータ永続化を行うためのミドルウェアはMySQLという前提で書く。 単純に言うと、いわゆるRailsアプリのMVCではMがActiveRecordかなんかを継承していて、そのまま作るとModelとtableが一対一対応になってしまう これだと、どのModelにも属さないようなビジネスロジックを置くべき場所がどこなのかよくわからない 「どのModelにも属さないようなビジネスロジックなんてないでしょ!」「どのModelにも属さないビジネスロジックがある時点で設計おかしいでしょ!」と思った人は幸福である。頭が。 ちな

  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • ActiveRecordのソースコードを読む - (゚∀゚)o彡 sasata299's blog

    2010年06月25日00:18 Ruby ActiveRecordのソースコードを読む ハマったのがきっかけで ActiveRecord 2.3.5 のソースコードを少し読んだので簡単にまとめてみます。なお、ActiveRecord では 2.2 からコネクションプーリングが導入されています。 コネクションプーリングとは? データベースにアクセスする時、アクセスのたびに接続(コネクション)を確立するのではなく、あらかじめ一定数のコネクションを確立しておき、それを使い回す手法。データベースアクセスの負荷を減らすために用いられる。 それを踏まえつつ、検索をする場合の処理を追っていきます。例えば Hoge.find(:all, ...) とかしたらどうなるんでしょうか。 あ、その前に ActiveRecord 使うときって establish_connection が必ず呼ばれます。Rails

  • [rails] ActiveRecord3の connection_pool の挙動を調べた - よしだメモ

    的にRailsでは単一のDBを使用するように設計されています。とはいえ負荷軽減のためだったり、あるいは様々なしがらみのために複数のDBに接続しなければいけない場合がたまにあったりすると思います。しかも残念な事に違うDBに同じ名前のテーブルがあったりしてどうすんだよコレとなることも無いとは言えないでしょう。 ActiveRecord が connection pool に対応したのは知識としては知っていましたが複数のDBに実際につなぎにいったばあい connection はどうなるの?と疑問に思ったので調べてみました。 # activerecord-3.0.3/lib/active_record/connection_adapters/abstract/connection_specification.rb 51行目 - 82行目 def self.establish_connectio

    [rails] ActiveRecord3の connection_pool の挙動を調べた - よしだメモ
  • Blog

    Transformational Software Engineering Lead your team into the future with unprecedented visibility. Details

    Blog
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1