タグ

activerecordに関するd14aのブックマーク (15)

  • scopeでお手軽検索

    Rails3.0のscope(2系で言うnamed_scope)を使ったお手軽検索。モデルにextendして使う。やってることは渡されたパラメータのkeyのscopeを呼び出して、それらを全部チェインさせるだけ。お手軽だけど、scopeを定義するだけなので結構融通が効くし便利。

  • Rails(ActiveRecord)でデータベースへのコネクションプーリングをさせなくする - はまさき

    ActiveRecordを使ったRailsアプリは,デフォルトでデータベースへの接続をプールするようになっています. ActiveRecordユーザとしては待ちわびたぜ!的な機能らしいのですが,設定等でこれをdisableすることが出来ず,LVS+keepalivedを介する場合にはロードバランシングが最初の接続時にしか為されずがなかなか厄介です. 対策として思いついたのは プールした接続を早い周期で捨てる LVS+keepalivedではなく,MySQL Proxyでバランシングする(Proxyへの接続はプール) そもそも接続をプールさせない くらいでした. どうするのがセオリーなのかと調べてみると コネクションプーリングの話 - naoyaのはてなダイアリー 2006-09-03 など4年近く前に議論されていて,"あー,高速道路あるなあ"と,コネクション確立のコストを調べる前に「プール

    Rails(ActiveRecord)でデータベースへのコネクションプーリングをさせなくする - はまさき
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
  • Ruby/ActiveRecordで動的に接続先を変更する - 俺の基地

    動的に増減する接続先が大量にある場合 ActiveRecordで接続先を使い分ける場合は、ActiveRecord::Baseクラスを継承して、connection_establishを個別に呼び出してやる手法が載ってますが、どんな接続先がくるかもわからない+その接続先が大量にある場合どうすりゃいいのってことでAPIマニュアルを見てたんですが・・・ remove_connection ってメソッドが使えそうだなと思って establish_connectionと交互にやればできるんじゃないかと思ったんだが・・・なんかできない。 なんだかestablish_connectionは1回しかできないっぽ・・・という結論に達して思案 ▲ ▼ 接続先の数だけクラス製造 Ruby/クラス/無名クラスを作るのテクニックを使って、じゃんじゃん作って対処w require "rubygems" requ

  • 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

  • ActiveRecordのsanitizeについてのまとめ1 - ほむり

    ActiveRecordについて調べる必要があったのでまとめました。 調べたソースコードは activerecord-2.3.5 です。 どっか間違えていたら教えてもらえると助かります。>< ActiveRecord::Base#findから ActiveRecordから派生したクラスを使い、下記のようなコードで呼び出す。 Person.find(:all, :conditions => [ "category IN (?)", categories], :limit => 50) Person.find(:all, :conditions => { :friends => ["Bob", "Steve", "Fred"] } findのコードはどうなっているかというと、 def find(*args) options = args.extract_options! validate_fi

    ActiveRecordのsanitizeについてのまとめ1 - ほむり
  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • ActiveRecord の例外処理 | 変なヤバいもんログ

    Posted on 2009年5月20日 Posted by ちゅう コメントする Posted in Development Tags: Rails Rails の ActiveRecord で、save! とかすると保存に失敗したとき例外を投げてくれる。例えば、User.create!(params[:user]) とかして、失敗すると、ActiveRecord::RecordInvalid を投げてくれるのだけど、エラーをどうやって取るのか調べたのでメモ。 よくある例で、ユーザが作れたら index へ遷移して、作れなかったら new で再入力させるという場合。 createを使う場合 def create if @user = User.create(params[:user]) flash[:notice] = 'ユーザ作成しました' redirect_to action: :i

    ActiveRecord の例外処理 | 変なヤバいもんログ
  • Rails を使用しない ActiveRecord + Migrate - chaotic valkyrie

    メモ代わり。 ActiveRecord require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'postgresql', :host => 'localhost', :username => 'foo', :database => 'baz', :encoding => 'utf8' ) class User < ActiveRecord::Base end User.find(:all).each do |u| p u end Migrate Rakefile ほんとは設定ファイルわけたほうがいいんだけどね require 'rubygems' require 'active_record' require 'logger' ActiveRecord:

    Rails を使用しない ActiveRecord + Migrate - chaotic valkyrie
  • ActiveRecord単体で使ってみる - 四角い車輪の再発明

    Rails*1を読んでいて、ActiveRecordの機能の豊富さにだんだんついていけなくなったので練習のために、単独で使ってみる。まず以下のようなテーブルをMySQLに構築 CREATE TABLE customers ( id int not null auto_increment, name varchar(100), address varchar(100), PRIMARY KEY (id) ); できあがったら以下のプログラムを書いて実行してみる。 require "rubygems" require_gem "activerecord" ActiveRecord::Base.establish_connection(:adapter=>"mysql",:host=>"localhost",:user=>"root",:password=>"*****",:database

  • 複数の ActiveRecord オブジェクトをまとめて扱う - ursmの日記

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    複数の ActiveRecord オブジェクトをまとめて扱う - ursmの日記
  • ActiveRecord::Extensions - yoshitetsuの日記

    去年Twitterで教えてもらったActiveRecord::Extensions。すごく良いです。 日語で書かれた記事が見つからなかったので、書いてみます。 ActiveRecord::Extensionsは文字通り、ActiveRecordの拡張です。わりと便利な機能がたくさんあるのでmysql使っている人は入れても損は無いと思う。postgresqlは未対応です。 インストール gem 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.

    ActiveRecord::Extensions - yoshitetsuの日記
  • ActiveRecordのconditionsを綺麗に書くTips2つ

    1.conditions句をシンボル使ってDRYに書くconditions句って実はシンボル使えるらしいのです。最近まで知りませんでした。というわけで、?だと:conditions =>["(prefecture_id = ? and user_id = ?)  or (other_prefecture_id = ? and other_user_id = ?)",  11, 2, 11, 2]  と、分けわかんなくなっちゃう様な検索文を:conditions =>["(prefecture_id = :prefecture_id and user_id = :user_id)  or (other_prefecture_id = :prefecture_id and other_user_id = :user_id)", {:prefecture_id => 11, :user_id =

  • ページがありません

    このURLは現在使われておりません。 5秒後にホームページへ自動的にジャンプします。 ジャンプしない場合はURLをクリックしてください。 http://www.syu-ta.com/

  • Rails + BackgrounDRb でメール配信 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さんご存知のとおり、 Rails をはじめとする多くの Web アプリケーションフレームワークは、リクエストベースで設計されています。つまり、すべての処理は HTTP リクエストごとに起動され、それにレスポンスを返すことで終了します。ほとんどの場合、これは非常にうまく機能しますが、タイムアウトが発生してしまうような時間のかかる処理、一定間隔で定期的に起動したい処

  • 1