내가 잘못하고 있니?왜 스핑크스가 레일상의 루비에서 한 번에 하나의 속성으로 필터링을 제한한다고 생각합니까?
옵션이없는 경우 위치가 작동하고 웹 사이트의 브라우저 페이지에 들어가면 결과가 표시됩니다.
페이지를 조회하면 모든 사용자가 페이지 당 20 개씩 표시됩니다. with_all gender => params [: gender]를 추가하면 위치가 여전히 작동하고 위치를 입력하고 성별로 결과를 필터링하면 결과가 성공적으로 반환됩니다.
민족성을 with_all 해시에 추가하면 민족성이 작동하고 결과는 변경되지만 성별 및 위치는 더 이상 작동하지 않습니다.
필터링의 경우 1 개의 속성 만 허용하는 것과 같습니다.
색인을 여러 번 다시 작성 했으므로 어떤 일이 일어나지 않습니다.
나는 위치에 대한 텍스트 검색 있는데이 개 필터는 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 %>
여기 내 컨트롤러
params [: 민족성] .present가 있다면 필터 [: 민족성] = params [: 민족성] .to_i였습니까? 세 번째 줄 은요? 이제는 모두 저에게 효과적입니다. 내가 제거 : 유형 => : 정수 및 재건도. 많은 사람들은 이와 같은 필터링이 불가능하다고 생각했습니다. 나는 많은 포럼을 방문했고 그들 중 한 명이 내 질문을 올렸다. 다행이 이제 해결되었습니다. 귀하의 명확성을 가져 주셔서 감사합니다. 이 일을 시작하는 것이 내 하루를 시작하는 좋은 방법이었습니다. – LondonGuy
그래, 내 실수. 듣기 좋아요. 다음 번에 Thinking Sphinx Google 그룹에 게시 - TS 질문을위한 최고의 장소 :) – pat