2016-07-24 3 views
0

저는 학계에서 4 명의 앱을 사용하는 방법을 알아 내려고하고 있습니다.레일즈 - Pundit - 해결 방법이 제대로 작동하지 않습니다.

기사 정책과 기사 색인보기가 있습니다.

기사 정책에는 다양한 유형의 사용자에 대한 범위가있는 해결 방법이 있습니다. 내 인덱스 쇼에서

def resolve 
    if user == @user.id 
     scope.all.where(user_id: user.id) 
    elsif user.has_role?(:org_approver) 
     scope.to_be_reviewed 
    else 
     scope.in_state(:publish) 
    end  
end 

, 나는 각 사용자에게 그들이 내 해결 방법 내에 맞게하는 범주에 따라 배열에있는 문서를 보여줄 것으로 기대하고있다.

<% policy_scope(Article).sort_by(&:created_at).in_groups_of(2) do |group| %> 
    <div id="portfolioFiltering" class="masonry-wrapper row"> 
     <% group.compact.each do |article| %> 
     <div class="col-md-4 col-md-offset-1 portfolioitem Scienza"> 
     <div class="portfolio-item text- 

나는 오류를 얻을하지 않습니다,하지만 난 기사의 저자 인 사용자로 로그인 할 때, 나는 (즉, 사용자로) 나에 속하는 모든 기사를 얻을 것으로 기대합니다. 대신 모든 발행 된 기사 만 얻습니다 (내 해결 방법의 마지막 대안).

어디서 잘못 본 사람이 있습니까?

user == @user.id 

그것을해야한다 :

user == @user 

User 목적은 당신이 때 당신을 얻을 것 인 Integer 객체와 동일하지 않습니다 때문에

답변

0

나는이 줄 문제라고 생각 User 개체에서 id으로 전화하십시오.

또한 Pundit GitHub page을보고 테스트 할 때 RSpec 섹션까지 아래로 스크롤하십시오. 항상 인증 및 권한 부여를 테스트해야합니다.

관련 문제