Поиск в разных моделях в зависимости от условий [ Ruby on Rails ]

Я новичок в веб-разработке и RoR в частности, поэтому я извиняюсь, если этот вопрос слишком очевиден. Во всяком случае, я пытаюсь создать сайт по недвижимости, просто чтобы посмотреть, что нужно для этого, и я застрял в поиске. У меня есть несколько моделей, каждая для каждого вида недвижимости, например, квартира, офис, гараж и т. Д., И когда пользователь ищет квартиру, он должен использовать модель "Квартира" для поиска, если он ищет гараж, то он надо искать в "гараже" модель и тд. Итак, не могли бы вы помочь мне и дать мне какой-нибудь намек на то, что я вставил в контроллер?

1 ответ

Решение

Определите отображение от ввода пользователя до классов.

SEARCH_TYPES = { 'apartment' => Flat, 'garage' => Garage, 'house' => House }

Определите класс из пользовательского ввода и используйте методы поиска, как вы всегда делаете.

def search
  if klass = SEARCH_TYPES[params[:search][:type]]
    klass.where(params[:search])
  else
    # handle no matching Class for type of search
  end
end

Что не сделаешь: попробуй получить класс прямо из params.

Другие вопросы по тегам