레일즈 4 앱에서 Pundit gem을 사용하기 시작했습니다.Pundit에서 페이지 매김을 처리하는 방법은 무엇입니까?
모든 것이 잘되었지만 색인 작업에서 페이지 매김이 작동하는 방법에 대해 머리 글자를 얻을 수 있습니다.
이def index
@records = policy_scope(Record)
end
내 RecordPolicy 내의 범위 클래스는 다음 간다 : 같은
내 컨트롤러의 index 액션 보인다
class Scope < Struct.new(:user, :scope)
def resolve
if user.has_role? :admin
# get all records
else
# get user specific records
end
end
end
이 모두 잘 작동합니다. 그래도 페이지 매김을 처리하는 방법을 알고 싶습니다. 물론 이것은 페이지 매개 변수 등을 전달하는 것과 관련이 있으며 Scope 클래스를 subsclassing하지 않고이 작업을 수행하는 방법을 잘 모르겠습니다.
입니다.이 경우에는 @records를 ActiveRecord 'find'대신에 'find'를 사용하여 필터링하는 문제가있었습니다. 'where'는 ActiveRecord 관계 유형이 아닌 하나의 레코드 만 반환했습니다. 위의 솔루션은 색인에 대한 내 학자 범위의 버그를 해결하면 올바르게 작동합니다. –