는 I는 cancancan 보석의 역할 기능 (레일 5 POSTGRES 고안)을 선언.cancancan 행 기반 필터
난 단지 show
SalesDatum 예를 들어 user_id
로그인 한 수 있기 때문 쇼 작업에서 작동하십시오 USER_ID에 기록하기 때문에
http://localhost:8080/projects/19/sales_data/961 가 인증 도착은 sales_data에 USER_ID 일치
http://localhost:8080/projects/19/sales_data/800 로그인 한 user_id가 sales_data의 user_id와 일치하지 않아 인증되지 않았습니다.
그러나 제가 ge t 색인 조치 : http://localhost:8080/projects/19/sales_data 변수의 @sales_data
에있는 모든 판매 데이터가 표시됩니다. 관련 USER_ID와 데이터를 표시
load_and_authorize_resource
def index
@sales_data = SalesDatum.where(project_id:params[:project_id])
end
가 어떻게에만 인덱스 조치를받을 수 있나요 : 그래서, 그것은 data.id 800 및 961
판매 데이터 컨트롤러를 보여줄 것인가? Cancan은 user_id
에 따라 걸러 낼 수 있습니까?
컨트롤러 쿼리를'SalesDatum.where (project_id : params [: project_id]). (user_id :'current_user.id')'로 편집 할 수 있습니다. – HoosierCoder
이것이 내가 Pundit에 찬성하여 CanCanCan을 포기한 이유입니다. 믿을 수 없을 정도로 간단한 DSL은 인증 범위를 정의하거나 사소한 일을 전혀 다루지 않습니다. – max