Я что-то не так делаю?
Если у меня нет с опциями добавления местоположения, работает, и я получаю результаты, как только я захожу на страницу браузера моего сайта.
Когда я нажимаю на страницу, все пользователи отображаются по 20 на страницу. Если я добавлю with_all пол => параметры [: пол], местоположение все еще работает, и я печатаю местоположение и фильтрую результаты по полу, и результаты успешно возвращаются.
Если я добавлю этническую принадлежность к хешу with_all, этническая принадлежность сработает, и результаты поменяются, но пол и местоположение больше не будут работать.
Это как бы разрешает только 1 атрибут для фильтрации.
Я несколько раз перестраивал индекс, поэтому не понимаю, что происходит.
У меня есть текстовый поиск местоположения и 2 фильтра: 1. пол, 2. этническая принадлежность
Вот моя модель профиля для таблицы профилей, в которой хранятся все вышеперечисленные атрибуты:
define_index do
indexes location
has ethnicity, :type => :integer
has gender, :type => :integer
end
Вот мой контроллер:
class BrowsersController < ApplicationController
def index
@default_image = "/assets/default_avatar.jpg"
#gender = params[:gender].to_i
@users = Profile.search params[:location],
:page => params[:page],
:per_page => 20,
:with_all =>
{
:gender => params[:gender],
:ethnicity => params[:ethnicity]
}
end
end
Форма просмотра:
<%= form_tag browsers_path, :method => 'get' do %>
<p>
Location: <%= text_field_tag :location, params[:location] %><br />
Gender: <%= select_tag :gender,
options_for_select([["Select", nil],
["Male", 1],
["Female", 2]], params[:gender]) %>
<br />
Ethnicity: <%= select_tag :ethnicity,
options_for_select([["Select", nil],['Black', 1 ],['White / Caucasian', 2 ],['European', 3 ],['Asian', 4 ],['Indian', 5 ],['Middle Eastern', 6 ],['Native American', 7 ],['Hispanic', 8 ],['Mixed Race', 9 ],['Other Ethnicity', 10 ]], params[:ethnicity]) %>
<br />
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>