2012-10-22 2 views
0

내가 Paper Clip expiring_url을 사용하여 일부 파일을 설정했습니다. 그것들은 잘 작동하고 있습니다.CanCan 2.0 + Paperclip expiring_url

나는 다음과 같은 코드를 사용하여 서명 된 회원들에게 expiring_url 수 있도록 캉캉 2.0을 사용하려고

# /app/models/ability.rb 
class Ability 
    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user 
    can :read, :movies 
    cannot :read, :movies, :expiring_url 

    if user.persisted? 
     can :read, :movies, :expiring_url 
    end 

    end 
end 

MoviesController.rbload_and_authorize_resource 여전히 모든 사용자가 영화를 다운로드 할 수있는되어 있습니다.

expiring_urlMovie의 속성이 아니며 그 이유가 작동하지 않는 이유입니다. 나는 클립 링 expiring_url 개체가 작동하도록하기 위해 클립 클립을 어떻게 지정할 수 있는지 모르겠습니다.

어떻게하면 좋을까요?

단지이없는 이러한 조건

에 대한 데이터베이스 열을 사용하는 것이 중요합니다 :

답변

1

캉캉 분명히 this 페이지의 성명에 따라, 실제 데이터베이스 컬럼으로 조건을 요구한다 클립 클립에있는 제한, cancan (나는 꽤 많이 사랑한다, 나를 틀리게하지 마라).

0

나는 캉캉 1.6.x 이상인를 사용하지만, 정의 능력 2.0 docs에서에서, 라이언은 사용자 속성에 따라 권한을 정의 할 수 있도록에서 CURRENT_USER이 전달됩니다

을 말한다.

그래서 current_user를 사용하면 다음과 같은 작업을 수행하지 않겠습니까?

if user 
    can :read, :movies, :expiring_url 
else 
    can :read, :movies 
end 

당신은 "expiring_url"가 무엇인지에 대한 자세한 정보를 제공 할 수 있습니까? 방금 expiring_url이 모델이 아님에 따라 위의 사항이 효과가 없을 것입니다.