Rails Developers Meetup 2018: Day 2( https://techplay.jp/event/655769 )で行った発表の資料です。 ActiveRecordはWebエンジニア達が嫌う(?)SQLを書かずとも、Rubyオブジェクトで気軽にデータベースへアクセスできる魔…
お仕事で今、Railsアプリケーションで複数DATABASEのサービスを開発していて、いろいろと悩むことが増えてきたので、勉強を兼ねてネットにあったドキュメントを収集していくつか読み込んでみました。俺得記事です。あともしよい資料とかあればぜひコメントください! 🎳 クックパッドにおける最近のActive Record運用事情クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ マイグレーションは使っていない1,500以上のモデルがあり、複数人が作業しているため、互いの作業をブロックしないためにもマイングレーションでの運用は行っていない。 スキーマ管理ツール: Ridgepolewinebarrel/ridgepole - GitHubスキーマ管理ツール。テーブル定義ファイルにカラムを書き足すと、実際のDBのテーブル定義と比較して、 差分があればそのぶん
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
「ActiveRecord」の基本とデータの参照:Ruby on Rails3で学ぶWeb開発のキホン(3)(1/2 ページ) 前回まではRuby on Railsの全体像について見てきました。今回からは、Railsを構成する各部品について詳しく解説していきます。まずは、Railsのモデル層の標準的なライブラリである「ActiveRecord」に焦点を当てます。とはいえ、ActiveRecordの提供する機能は膨大なので、数回に分けて解説することにします。今回は、ActiveRecordの基本的な考え方や、使い始めるために必要なマイグレーションの知識、参照系の操作の仕方をご紹介します。 ActiveRecordとは ActiveRecordはRuby on Railsを構成する最も重要なライブラリの1つで、Railsのモデル層に相当し、O/Rマッピングを担当します 。このライブラリの名前は
ActiveRecordを使ったRailsアプリは,デフォルトでデータベースへの接続をプールするようになっています. ActiveRecordユーザとしては待ちわびたぜ!的な機能らしいのですが,設定等でこれをdisableすることが出来ず,LVS+keepalivedを介する場合にはロードバランシングが最初の接続時にしか為されずがなかなか厄介です. 対策として思いついたのは プールした接続を早い周期で捨てる LVS+keepalivedではなく,MySQL Proxyでバランシングする(Proxyへの接続はプール) そもそも接続をプールさせない くらいでした. どうするのがセオリーなのかと調べてみると コネクションプーリングの話 - naoyaのはてなダイアリー 2006-09-03 など4年近く前に議論されていて,"あー,高速道路あるなあ"と,コネクション確立のコストを調べる前に「プール
第2回 ActiveRecordが提供するModel機能を理解しよう 富田 陽介 Banana Systems株式会社 2009/4/24 Railsアプリケーション開発を支援する統合開発環境「3rdRail」を使って、開発、デバッグ、プロファイリングの手法をマスターしよう(編集部) 第1回では、「初めてのRailsアプリケーション開発」と題して、Railsが提供するscaffoldという支援機能を使用してシンプルなWebアプリケーションの開発の流れを紹介しました。 これから3回連続で、「つぶやき」アプリケーションを拡張/機能追加しながら、ModelクラスとControllerクラスの開発ステップを見ていきます。第1回で紹介しきれなかった3rdRailのIDEとしての機能を取り上げながら、より実践的なWebアプリケーションの開発手順に触れてみましょう。 今回は、ActiveRecordが提
New to Rails 3? Check out the Ruby on Rails 3 Tutorial book and screencast. A book and screencast series showing you how to develop and deploy industrial-strength Rails apps in a direct, step by step way. The screencast series includes 12 lessons over more than 15 hours! Get the best "over the shoulder" experience of following what a top Rails 3 developer does when building an app today. Click her
第3回 ActiveRecordを使ったソースコードを読もう 倉貫 義人 松村 章弘 TIS株式会社 SonicGarden 2009/1/28 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) これまでの2回の記事で、Railsアプリケーションの基本的な構成と、テスティングフレームワークであるRSpecを使ったソースコードのコードリーディングを行ってきました。今回は、RailsのキモでもあるDBアクセス処理の部分を扱うActiveRecordを深く掘り下げてコードリーディングを行います。 ActiveRecordとは、まさしく同名の“Active Record”というDBアクセスに関するデザインパターンを実装したライブラリです。データベースのテーブルをクラスとしてビジネスロジックを持たせ、テー
New to Rails 3? Check out the Ruby on Rails 3 Tutorial book and screencast. A book and screencast series showing you how to develop and deploy industrial-strength Rails apps in a direct, step by step way. The screencast series includes 12 lessons over more than 15 hours! Get the best "over the shoulder" experience of following what a top Rails 3 developer does when building an app today. Click her
We have a client that already has some database replication going on in their deployment and needed to have most of their Ruby on Rails application pull from slave servers, but the few writes would go to the master, which would then end up in their slaves. So, I was able to quickly extend ActiveRecord with just two methods to achieve this. Anyhow, earlier today, someone in #caboose asked if there
Ruby on Rails, C#, .NET, book reviews, film reviews, mind hacks, Wing Chun and the occasional personal bit. I spent a bit of time this weekend on a pet rails project. I came across a strange error when trying to create new records through the application. Editing was working just fine, but creating a new record just seemed to hang. Breakpoints came to my rescue. In Ruby, they're really handy. You
Never been to DZone Snippets before? Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world So you've got a lot of stuff, spread over a lot of tables, and now you want to scoop it all up and display it all in the same view - oh, and you don't want ActiveRecord to perform a bazillio
Summary Adds state machine functionality to any model. This makes it much easier to model complex constraints and behaviours. Example Here’s a picture of the state machine we want: http://www-128.ibm.com/developerworks/java/library/j-cb03137/figure1.gif And here’s what the code would look like: class Nonprofit < ActiveRecord::Base acts_as_state_machine :initial => :created, :column => 'status' # T
ActiveRecordオブジェクトは, class Employee < ActiveRecord::Base end とするだけで,上記で言えばemployees表が持つ各種列に対応する属性が利用可能になる。例えば,employees表にname列が定義されていたとすれば, employee.name = ‘Yoichiro’ p employee.name というように,nameアクセッサを利用することができる。とても簡単だ。では, employee.name? とemployeeオブジェクトにメッセージを投げることが可能である人は,どれだけいるだろうか?もちろん僕も,rails-mlに「 [rails:2302] ActiveRecordオブジェクトの属性にクエスチョンをつけると・・・?」という投稿があるまで,知らなかった。 では,「#{attr_name}?」で問い合わせた場合,
There's a lot of good stuff packed into that table, so let's break it down and see what it's all about. Structure has_and_belongs_to_many uses a simple join table where each row is just two foreign keys. There's no model class for the join as the join table records are never accessed directly. has_many :through upgrades the join table to a full-fledged model. It uses a model class to represent ent
データベースに格納される情報は,「作成日時」や「更新日時」を付与することが多い。ActiveRecordでは,作成日時や更新日時について,暗黙的にセットする機構が標準で備わっている。例えば, class CreateEmployees < ActiveRecord::Migration def self.up create_table :employees do |t| ・・・ t.column :created_at, :timestamp t.column :updated_at, :timestamp end end ・・・ end というように表を作成しておけば,created_atにinsertされたときの作成日時が,updated_atにはupdateがかかる度にその時の日時が更新日時としてセットされる。プログラマが改めて「emp.updated_at = Time.now」な
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く