2011-08-05 8 views
0

以下にパラメータが渡されないときは、すべての記事を選択できるようにしたい。例えばRails(Activerecord)の何にもマッチするWHERE条件

class Article < ActiveRecord::Base 

    named_scope :filter_by, lambda 
    { 
    |*args| {:conditions => [(args.first || 'id') + " = ?", (args.second || '*is_anything*')]} 
    } 

end 

Article.filter_by()Article.allと同じでなければなりません。これを達成する最も簡単な方法は何ですか?どの程度

+0

、私はあなたが何をしようとして見るのに苦労しています。あなたは "IS NOT NULL"または "> 0"を使用することができます – Yule

+0

なぜこの機能を作成する必要があるのだろうか? – Ant

+0

@Ant ...便宜のために。 filter_by( 'tag'、 'rails') –

答えて

1

:それを行うには恐ろしい方法のように聞こえる

named_scope :filter_by, lambda 
    { 
    |*args| {:conditions => (args.nil? || args.empty?) ? nil : [(args.first || 'id') + " = ?", (args.second || '*is_anything*')]} 
    }