카미나리를 사용하여 페이지 매김을 처리하고 있습니다. 최근에 많은 가짜 요청이 잘못된 페이지 번호 (예 : /post/page/undefined
)를 요청하고 있음을 알게되었습니다. Solr을 사용하고 있기 때문에 잘못된 페이지 번호가 전달되어 500 개의 오류가 발생합니다.카미나리를 사용할 때 페이지 번호 확인
컨트롤러에 전달되기 전에 페이지 번호의 유효성을 검사 할 수 있기를 원합니다. 따라서 잘못된 페이지 번호는 대신 라우팅 오류를 발생시킵니다.
나는 카미 마리의 창시자와 he gave a temporary solution에게 질문했습니다. 그러나 나는 이것을하는 더 깨끗한 방법이 있는지 궁금합니다. 또한이 논리를 모든 페이지 매김 가능한 자원에 포함시키고 싶지는 않습니다. DRY가 아예 없기 때문입니다.
내 경로 예 :
당신이 사용 제약을 제공하는 링크 amatsuda에 의해 제안resources :transactions do
get 'page/:page', :action => :index, :on => :collection
end
음, 자신의 솔루션보다 제약 조건을 사용하는 예뻐 방법이? 컨트롤러간에 DRY 방식으로 페이지 1을 기본 설정하려면 어떻게해야합니까? – lulalala
URL에서 페이지를 가져 와서 쿼리 문자열에 넣는 것이 좋습니다 ... 선택 사항입니다. 컨트롤러에서 params [: page] ||를 호출 할 수 있습니다. 1' – rthbound
URL 접근 방식을 사용하기 때문에 액션 캐싱을 사용하고 싶습니다. 요청이'page = undefined '인 경우 기본값으로 1이 작동하지 않습니다. – lulalala