Я получаю от этого вызова ActiveRecord:Rails - как получить из объекта ActiveRecord только конкретные записи?
#<ActiveRecord::Associations::CollectionProxy [
#<CarService id: nil, car_id: nil, car_service: 1,
created_at: nil, updated_at: nil, car_type: 0>,
#<CarService id: nil, car_id: nil, car_service: 11,
created_at: nil, updated_at: nil, car_type: 1>]>
После того, как я получаю это, мне нужно фильтровать только те записи, где car_type = "0"
. Как это сделать без повторного вызова базы данных (WHERE car_type = "0"
)?
Заранее спасибо.
EDIT:
это:
car.car_services.select{|key, hash| hash['car_type'] == "1" }
не работает.
'car.car_services.select {| car_service | car_service.car_type.to_s == "1"} '. Кстати, это _wrong_ подход. Другой фильтр-запрос к БД будет быстрее и надежнее. – mudasobwa
Вы пытались: 'car.car_services.select {| car_service | car_service.car_type == 1} '? – oliviergg
Почему не 'где'? если результат большой, 'select' займет у вас много времени. он не сделает другого вызова, если запрос вообще – lusketeer