Przeszukiwanie tablicy - szukanie okreslonego STRINGA

Witam,

chcialem prosic o pomoc w kwestii takiej, ze szukam w tablicy

@product okreslonych ciagów znaków, ktore chcialbym podawać po przecinku, cos w stylu…

@product.name.include? [“szukany tekst1”, “szukany tekst 2”]

czyli szukam okreslonych nazw, ktore zawierają “tekst 1” lub “tekst 2”, cos na kształ SQL’owego name LIKE ‘%tekst1’ OR name LIKE ‘%tekst2’

chcialem mozliwie zrobic to w jednym wierszu, pewnie sie da, ale mam z tym problemy…

dzieki serdeczne za pomoc…

[quote=isgabrys]Witam,

chcialem prosic o pomoc w kwestii takiej, ze szukam w tablicy

@product okreslonych ciagów znaków, ktore chcialbym podawać po przecinku, cos w stylu…

@product.name.include? [“szukany tekst1”, “szukany tekst 2”]

czyli szukam okreslonych nazw, ktore zawierają “tekst 1” lub “tekst 2”, cos na kształ SQL’owego name LIKE ‘%tekst1’ OR name LIKE ‘%tekst2’

chcialem mozliwie zrobic to w jednym wierszu, pewnie sie da, ale mam z tym problemy…

dzieki serdeczne za pomoc…[/quote]
class Product < ActiveRecord::Base
named_scope(:with_names, lambda { |names| { :conditions => [(1…names.size).map { ‘protucts.name = ?’ }.join(" OR "), *names] })
end

a potem juz tylko Product.with_names([‘a’,‘b’,‘c’]) zwroci wszystkie elementy o nazwie ‘a’ ‘b’ i ‘c’

Nie wiem czy o to chodzi :slight_smile:

juz odpowiadam…

nie wiem czy dobrze robie, ale ja juz mam pobrany 1 produkt w obrebie mojego widoku i w tym widoku mam umieszczony warunek, ze jezeli produkt w swojej nazwie ma szukany ciag znakow to jest OK, a jezeli nie to fragmentu nie przerabia… chodzi o to, ze ja wlasnie w tej nazwie produktu szukam kilku wystapień (określonych np. słów) i jezeli znajdzie to jest ok, a jezeli nie to olewa reszte kodu…

takie szukanie kilku (zalozmy 10 slow) w nazwie produktu, np. produkt “Kaszanka wiejska” i szukam w nazwie tej np. “salceson”, “szynka”, “pasztet” - szukam ktoregos z tych slow w nazwie produktu, jezeli znajdzie to chce to “wiedziec”…

czyli pewnie chodzi o kwestie szukania stringów (bądz tablicy tych słów) w stringu zrodlowym

no to po prostu odwroc swoj warunek:
if [‘kaszanka’, ‘salceson’, ‘parówka’, ‘sucha krakowska’, ‘mielonka’].include?(@product.name)