Witajcie,
Chcialbym osiagnac, aby przy metodzie find AR::Base, system szukal tylko rekordow wg okreslonych kryteriow.
Wiem ze moge skorzystac z named scopes i mam wtedy na przyklad:
Class Fish < ActiveRecord::Base
named_scope :young, :conditions => ["age < ?", 5]
end
Wiec teraz Fish.young(:all)
pobierze tylko ryby, ktore maja mniej niz 5 lat, proste.
Teraz mam trzy problemy
Chce pobrac ryby z akwarium
Fish.find(:all, :limit => 5).map {|f| f.id}
działa, fantastycznie
Znowu wybieram ryby z akwarium
Fish.find(:all, :limit => 5).map {|f| f.id}
, wybral te same ryby, a przeciez ich juz w akwarium nie ma (wybralem przed chwila)
Problem: Jak odpytac o ryby, ktore pozostaly w akwarium ?
[code] Class Fish < ActiveRecord::Base
named_scope :aquarium, :conditions => taken
def taken
#string z idkami wybranych ryb, polaczonymi and'ami dla budowania zapytania WHERE SQL.
#"id != 1 and id != 2 and id !=3 and id !=4 and id != 5"
end
end[/code]
Jak rozszerzyc AR::Base#find o funkcjonalnosc zapamietania (najlepiej w zmiennej klasowej, konkretnego modelu), tablicy obiektow, ktore juz zostaly wybrane ?
Chodzi o to zebym mogl wykonac powiedzmy trzy razy pod rzad:
Fish.aquarium.find(:all, :limit => 5)
Fish.aquarium.find(:all, :limit => 5)
Fish.aquarium.find(:all, :limit => 5)
I zebym otrzymal 15 roznych ryb
Pozdrowienia