2010-10-12 2 views

ответ

1

Вы можете использовать следующие функции Rails, чтобы имитировать такой поиск.

  • В Rails 2 вы можете использовать Named Scopes
  • В Rails 3 вы можете использовать Arel (смотрите раздел Readme)
0

один способ будет использовать find_all рубина -

q = p.find_all{ |e| e.name == 'Clocks' } 

как это этот код использует перебор рубин поиск массива, производительность не велика. если вы ожидаете, что p будет содержать более нескольких десятков элементов, использование запросов к базе данных будет лучше, производительность будет разумной.

1

Попробуйте здание на Вашей области:
Product.added_today.find(:all, :conditions => {:name => 'Clock'})

+0

Нет, я хочу найти в уже выбранных документах! – rbnoob

+0

Этот код только извлекает то, что вы хотите. Однако, если вы уже взяли строки и теперь хотите выбрать некоторые записи, единственный способ, которым я могу думать, - перебрать все из них. Проверьте ответ Амбы на это. – Faisal

2

Попробуйте следующее:

pa = Product.added_today 
pa.select{|p| p.name == "Clocks"}