W jaki sposob moge zbudowac zapytanie ktore znajdzie.
Poslow z:
:name => "Donald", :lastname => "Tusk"
:lastname => "Kaczyński"
:name => "Jan" http://pastie.org/1406707 poslowie spelniajacy te warunki
ps: Jezeli jest podane tylko imie lub nazwisko, szukam wszystkich poslow ktorzy maja np na imie “Jan”
Pseudokod:
a = Model.where(:name => "Donald", :lastname=> "Tusk") => Zwroci 1 rekord
b = Model.where(:lastname => "Kaczyński") => Zwroci 1 rekord
c = Model.where(:name => "Jan") => => Zwroci 18 rekordow
Ja chce polaczyc te trzy zapytania w jedno ktore odrazu zwroci 20 rekordow
To wyjątkowo wyspecjalizowana potrzeba. Jeśli dobrze rozumiem: albo imię A, albo nazwisko B, albo jednocześnie imię i nazwisko C-D (czyli inne niż A-B, tzn. mamy 4 parametry wejściowe A, B, C, D).
Potrzedłbym do tego tak:
Próba renegocjacji wymagań; prawdopodobnie jest to niepotrzebny feature
Jeśli jednak potrzebny, trzeba napisać własny scope z fragmentem SQL-a (…OR…OR…) - trudno, zdarza się
[/quote]
Wyglada ok. Male sprostowanie. Ta jedna linijka nie rozwiaze calego problemu ktory opisalem w pierwszym poscie ale jezeli ktos ja rozumie moze zbudowac algorytm ktory spelni te wymagania
Chodziło mi o to, że jeżeli pokażesz to programiście, który o metawhere nigdy nie słyszał, to na raczej nie będzie rozumiał o co chodzi. Przy | jest już lepiej, bo to jest OR logiczne, więc jest całkiem intuicyjne.