난 당신이 태그 충돌 검사, 스핑크스 는 또한 태그 에 의해 검색 할 수 있습니다 그리고 다른 관련 CIMG에 의해 검색 할 수 있습니다 통해 그들은, 내용으로 검색 할 수있는 #INDEX 에서 볼 수 Cimgs 라는 이름의 자원을검색 모드를 어떻게 지정해야합니까? 다른 리소스? 하나의 리소스? 여러 행동?
그리고 내 질문은 다음과 같습니다. 어떤 경로가 더 좋은 방법입니까? #index에 추가 매개 변수를 전달하고 해당 매개 변수를 검색해야합니까? 결국 그들은 모두 같은 시각을 사용합니다. 또는 각 검색 방법에 대한 작업을 만들어야합니까? 아니면 전체 리소스입니까?
resources :cimgs, path: 'pics' do
collection do
get 'search(/:q)', action: :index, search_by: :content, as: :search_by_content
get 'tags/:tag', action: :index, search_by: :tags, as: :search_by_tag
get 'page/:page', action: :index
end
member do
get 'related', action: :index, search_by: :related, as: :search_by_related
end
end
root :to => 'cimgs#index'
문제는 내가 페이징 미나리를 사용하고 있다는 것입니다, 그것은 페이지/감지하지 않습니다 다음 루트가 아닌 다른 경로 페이지를
나는 현재 다음과 같은 일을 해요. 내 컨트롤러 액션을
을 그리고 여기에 있습니다 : 내가 한 행동에 그들 모두를 유지하는 것
def index
@cimgs = case params[:search_by]
when :content; Cimg.content_search params[:q], params[:page], request.remote_ip
return redirect_to @cimgs[0] if @cimgs.length == 1
when :tag; Cimg.search_by_tag params[:tag], params[:page]
when :related; Cimg.search_related_to params[:id], params[:page]
else; Cimg.get_for_front_page params[:page]
end
render :index
end