Поэтому я должен искать по трем полям. Возраст и пол И этническая принадлежностьActiveRecords: Искать только по непустым параметрам
Если задан только возраст, я должен вернуть все записи, соответствующие возрасту. Если возраст и этническая принадлежность даны, но секс пуст, тогда возвращайте соответствующие записи по возрасту и этнической принадлежности. и т.д ..
Наивный способ решения это так:
class Profile
def self.search_profile(search_params_array)
if search_params_array.first != nil && search_params_array.second != null && search_params_array.third != null
Profile.where("age = ?", search_params_array.first).where("sex = ?", search_params_array.second).where("ethnicity = ?", search_params_array.third)
end
...
... # We can permutate between all possible conditions where one of the element is nil
...
end
end
Что такое лучший способ приблизиться к этому?
to_h, похоже, не работает для моей версии ruby. Исправит это и проверит правильность вашего решения –
@ user5233972, так какая у вас версия рубина? – Aetherus
@ user5233972, если 'Array # to_h' недоступен для вас, используйте' Hash :: [] (ary) 'вместо – Aetherus