• ブログ
  • ふぉとす
  • キーワード
  • ブックマーク
  • 写真
  • ログイン

Title

« 2008年06月13日 | 2008年06月15日 »
  • acts_as_state_machineのfind_in_stateを複数状態指定可能にする 2008-06-14 08:58:44

    acts_as_state_machineのfind_in_stateは便利ですが、stateはひとつしか指定できません。たとえば、登録ユーザと管理者ユーザの両方でログイン可能なときなどはちょっとメンドくさいです。
    なので、find_in_stateで複数のstate指定をできるようにしてみました。
    config/initializers/acts_as_state_machine.rbを新規作成して以下のコードを書きます。

    module ScottBarron
      module Acts
        module StateMachine
          module ClassMethods
            protected
            def with_state_scope(target_states)
              target_states = [target_states] unless target_states.is_a?(Array)
              raise InvalidState unless target_states.all? {|s| states.include?(s)}
    
              cond = []
              cond_param = []
              target_states.each do |st|
                cond << "#{table_name}.#{state_column} = ?"
                cond_param << st.to_s
              end
    
              with_scope :find => {:conditions => [cond.join(" OR "), cond_param].flatten} do
                yield if block_given?
              end
            end
          end
        end
      end
    end
    

    これで、複数の指定をarrayで指定できるようになります。

    u = find_in_state :first, [:active, :admin], :conditions => {:email => email}
    

    count_in_stateもcalculate_in_stateも複数指定可になります。ちょっと便利になりました。

    Commentコメント(0) Pageリンク元(112) Append 507
  • WEB+DB PRESS Vol.38
    作者/アーティスト: WEB+DB PRESS編集部
    メディア: 大型本
    天使の街の地獄 (文春文庫)
    作者/アーティスト: Richard Rayner,吉野 美恵子
    メディア: 文庫
« 2008年06月13日 | 2008年06月15日 »

プロフィール

おおいしつかさ

Amazon商品の一覧

人気の記事ベスト10

  • 1.apache+mod_proxy_balancer+mongrelでRailsを動かす方法
  • 2.Perlでevalを使ってみる
  • 3.バージョン管理をsubversionからgitに移行してみた
  • 4.tokyobikeのドロップハンドル化
  • 5.ubuntu8.04でデュアルディスプレイを使う
  • 6.restful_authenticationを使ってみた
  • 7.URLなど、長い英字を折り返して表示する方法
  • 8.Rspecでコントローラのspecファイルを書く
  • 9.MySQLコンファレンス2008 2日目に参加してきました。
  • 10.RailsとPostfixで受信メールを処理する方法

コメント

  • ユル(プログラマが若隠居をしたら)
  • ユル(風邪ひいた)
  • ユル(バイクがへたくそになっていた)
  • おおいしつかさ(便利になって不便になる)
  • 武石(便利になって不便になる)
  • ユル(劇場版 天元突破グレンラガン)
  • ユル(フラニーとゾーイー (新潮文庫): サリンジャー, 野崎 孝: 本)

過去の記事

2006年
12月
2007年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2008年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月

キーワード一覧

ActionScript AmazonResources git javascript kaeruspoon milook NSR Objective-C Rails Ruby Ruby on Rails subversion Thin tokyobike ubuntu VAIO VAIO typeZ Waves Xen ぐりぐり カンタロー スノボー ドトール ドライブ バイク プログラミング ユルさん 執筆 日本酒 模型 真中洋嗣 自転車

Youtube

ニコニコ動画