2011-09-28 6 views
5

私のモデルの1つにレールを備えたダイナミクスフィルタを作成したいが、そのための最良の方法はわからない。イベント魔女が大陸を持っている途中レールに複数のフィルタを構築する最も良い方法

私のモデルがあります。

だから私はいくつかのフィルタでイベントを見つけることができるようにしたい。たとえば、「Febraryの月のヨーロッパでのすべてのイベントを発見しました」

これを行う最良の方法は何ですか。私はイベントを作成するにはfindByfilterを作成する必要がありますか?

ありがとうございました。

class Event < ActiveRecord::Base 
    scope :by_continent, lambda {|continent| where(:continent => continent)} 
    scope :by_country, lambda {|country| where(:country => country)} 
    ... 
end 

すなわち

してからやって:

は(私はレール3を使用)

答えて

4

私はあなたが探しているものを推測している少しだけフィルタを作成するscopeを使用して超えていますEvent.by_continent('NA').by_country('Canada')

to_sのメカニズムを使ってより正式な検索モデルを構築し、あなたの検索は、おそらくRailscast 111のようなものから始めるでしょう。彼は基本的にフィールドを設定し、設定されたものに基づいてフィルタリングする高度な検索モデルを構築します。

これにより、検索属性が設定されているかどうかを調べるための独自のto_sメソッド(または別の名前)を実装し、それを表す素晴らしい文字列を作成できます。

+0

はい、そうです、私はそれを使用しました – Sebastien

関連する問題