Аналогичный подход даже для множественного выбора.
Допустим, вы хотите фильтровать, используя отдел и местоположение:
<%= f.label :department_id %><br>
<%= f.select :department_id, Department.all.map { |d| [d.name, d.id] }, {include_blank: true}, multiple: true %>
<%= f.label :location_id %><br>
<%= f.select :location_id, Location.all.map { |d| [d.name, d.id] }, {include_blank: true}, multiple: true %>
Измените функцию в вашей модели, чтобы иметь следующий контент:
@users = User.where(["department_id = ?", department_id]) if department_id.present?
@users = @users.where(["location_id = ?", location_id]) if location_id.present?
В приведенном выше фильтре первой строки используется отдел.Во второй строке он фильтрует уже отфильтрованных пользователей по местоположению.