Как сделать ввод для поиска в базе данных на основе опции выбора в Rails 5

Итак, у меня есть форма, в которой ввод (тип: текст) и опция выбора расположены рядом друг с другом. Я хочу иметь возможность при выборе опции из опции выбора (либо «поиск из вашей еды», либо «поиск еды») для поиска в соответствующей таблице в базе данных. Например: вы выбираете из опции выбора «поиск из вашей еды», поэтому при вводе текста вы запрашиваете таблицу «user_food». Если вы выбираете «поиск еды», вы запрашиваете таблицу «еда». Да, кстати, я использую Sqlite3 в качестве базы данных (стандарт для Rails).

Вот как выглядит вход на данный момент:

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

И это код для него: введите здесь описание изображения

Любая помощь будет оценена по достоинству! Заранее спасибо!


person Alexander Bogdanov    schedule 04.03.2018    source источник


Ответы (1)


Вид:

<%= select_tag :food_selection, options_for_select([['Search for food', 'foods'], ['Search your food', 'user_foods']]) %>

Контроллер

if params[:selection] == 'foods'
  @foods = Food.where('...')
else
  @foods = UserFood.where('...')
end

@foods = @foods.limit(20) # chain methods here they both share
person Tallboy    schedule 04.03.2018
comment
Большой! Будет ли это работать только при отправке формы? Есть ли способ найти его без отправки формы, потому что есть несколько подобных входов, и мне нужно иметь возможность выбрать элемент перед отправкой формы. - person Alexander Bogdanov; 04.03.2018
comment
Так вы имеете в виду запрос AJAX в фоновом режиме? - person Tallboy; 04.03.2018
comment
Да что-то в этом роде. - person Alexander Bogdanov; 04.03.2018
comment
Ах, тогда это javascript. Посмотрите на jQuery и $.ajax - person Tallboy; 04.03.2018