2011-09-28 11 views
5

Chcę zbudować filtry dynamiki z szynami dla jednego z mojego modelu, ale nie wiem najlepszy sposób to zrobić.Najlepszy sposób budowania wielu filtrów w szynach

Mój model jest en czarownica Event ma kontynent, z Kraj i Miesiąc.

Chcę więc móc znaleźć wydarzenie z kilkoma filtrami. Na przykład "Znalezione wszystkie wydarzenia w Europie w ramach Miesiąca Febrary"

Jaki jest najlepszy sposób na zrobienie tego. Muszę wykonać funkcję findByfilter w moim modelu zdarzeń?

Dziękuję za odpowiedź, przykład jest mile widziany!

(używam szyn 3)

Odpowiedz

4

zgaduję co szukasz jest trochę poza tylko przy użyciu scope tworzyć filtry:

tj

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

a następnie robi Event.by_continent('NA').by_country('Canada')

Jeśli chcesz zbudować bardziej formalny model wyszukiwania z mechanizmem do to_s i opisać twoje poszukiwania, prawdopodobnie zacznę od czegoś takiego jak Railscast 111. Tworzy on zaawansowany model wyszukiwania, który zasadniczo pozwala ustawić pola, a następnie filtrować w zależności od zestawu.

Z tego można zaimplementować własną metodę to_s (lub inną nazwę, jeśli wolisz), która przyjmie, które atrybuty wyszukiwania zostały ustawione, i zbudować ładny ciąg, aby go opisać.

+0

Tak, prawda, użyłem tego – Sebastien

Powiązane problemy