ActiveRecordを支える技術 – Arelとは何者なのか? (全5回) その1 #activerecord#Arel#rails#ruby#Rails3, ActiveRecordからは、内部でArelと呼ばれる技術 – Arelとは何者なのか?(全5回) その1 [この記事]Arelについてなぜ調査しようと思ったのか、その背景と今後利用するサンプルコードを掲載しています。ActiveRecordを支える技術 – Arelとは何者なのか?(全5回) その2シンプルな
https://github.com/cookpad/arproxy http://rubygems.org/gems/arproxy これは何? Arproxyを使うと、ActiveRecordが発行したDB Adapterによって実行される直前をフックすることができます。これによって、カスタマイズしたクエリログを出力したり、どこからクエリが発行されたのかをトレースしたりすることができるようになります。 Arproxyでは、DB Adapterのフック処理を以下のように定義します。これはクエリが実行されるたびにバックトレースを出力する例です。*1 class QueryTracer < Arproxy::Base def execute(Rails.Rails.join(
■概要 capybaraとwebkit(たぶんselenium)を利用する際は、capybara側がブラウザとやりとりする為のスレッドを立ち上げる為 RSpec.configure do |config| ... config.use_transactional_fixtures = false end してfixtureのトランザクション制御をあきらめる必要があります。これでは少し都合が悪いので、 DatabaseCleanerを利用して代用する等行う必要があります。 ところがrailsコアチームのjosevalim氏が解決策をぼそっとつぶやいてました。実際にやってみると上手く動くだけでなく実行速度がかなり改善されました。 ■解決策 つぶやきで紹介されている方法は非常に簡単です。 spec_helper(test_helper.rb)で下記の用に追記しましょう。 RSpec.config
ActiveRecordは基本ずっと接続をはりっぱなしにします。 なので長時間接続をはりっぱなしにするため タイムアウト等で接続がきれると問題がでます。 MySQLでDBの接続がきれるタイミング 状況別 Railsの場合 HTTPリクエストのあるたびに接続が切れてないかを確認します。切れてる場合は再接続するようになっているので問題なさそうです。 バッチ、デーモン等 ActiveRecordを使った場合はずっとつなぎっぱなしになるため、途中で接続が切れるとエラーになります。 reconMySqlのクライアントライブラリレベルでリコネクトの概念がありました。 railsで使うにはdatabase.ymlに:reconrailsの実装ではデフォルトはOFFになっています
RailsでActiveRecord(DB)のトランザクション処理をテストする際のメモ。 トランザクション処理 簡単な例として以下のコードを考える。 class User def destroy_with_transaction User.transaction do destroy raise end end end テストコードを書く User#destroy_with_transactionは必ず例外が起こるので、トランザクションの働きで、レコードは削除されないことになる。よって、テストコードは以下のようになる。なお、フィクスチャとしてusers.ymlがあるとする。 class UserTest < Test::Unit::TestCase self.use_transactional_fixtures = false fixtures :users def setup @bob
去年Twitterで教えてもらったActiveRecord::Extensions。すごく良いです。 日本語で書かれた記事が見つからなかったので、書いてみます。 ActiveRecord::Extensionsは文字通り、ActiveRecordの拡張です。わりと便利な機能がたくさんあるのでmysql使っている人は入れても損は無いと思う。poem install ar-extensions もしくは script/plugin install http://arext.rubyforge.org/svn/tags/ar-extensions-0.7.0 gemとpluginどちらも用意されてるのが嬉しい。 あとはenvironment.rbとかにrequire 'ar-extensions'しとく。 (注:ar-extensions-0.7.
Rack middlewareで発生する例外をrescueする Rack middlewareで発生する例外とは アプリケーションで発生する例外を捕捉し、適切な処理をするのは一般的なことだと思います。コントローラの中で発生する例外はbegin rescueで囲ったり、rescue_fromを使えば捕捉できますが、Rack middlewareで発生する例外はどうでしょうか? 例えばMySQLを使っていてデータベースサーバに接続できない場合、ActiveRecord::ConementというmiddlewareからMysql2::ementはrake middlewareすると10番目に出てきます。 $ r
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
「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マッピングを担当します 。このライブラリの名前は
結構悩んだんだけど、やってみればまぁ、判りやすかったかも。 で memcachedをmodelで使える便利モノが「cache_fu(acts_as_cachedより改名)」なのですが、これ、has_oneとhas_manyは対応してるんですが、has_many :throughではエラーが。 で。mailinglist見てみる 対応してないよ とかある。 ほえー。ってことはset_cacheを駆使すればいいのか。 と、言うことでちょとやってみた。 よく例に上げられるArtgoriesで。 中間はCategrizationで。(moroさんの真似w モデル Artgory"] has_many :categrization ha
WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さんご存知のとおり、 Rails をはじめとする多くの Web アプリケーションフレームワークは、リクエストベースで設計されています。つまり、すべての処理は HTTP リクエストごとに起動され、それにレスポンスを返すことで終了します。ほとんどの場合、これは非常にうまく機能しますが、タイムアウトが発生してしまうような時間のかかる処理、一定間隔で定期的に起動したい処
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 ゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.techno技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く