2014-01-14 5 views
0

'교사'는 모델의 특정 속성 (예 : 모델 '책') 만 업데이트 할 때 그 모델의 다른 속성을 업데이트 할 수 없을 때 어떻게 말 할 수 있습니까? Cancan과 Best_In_Place를 모두 사용합니다.Best_In_Place 및 Cancan을 사용하여 제한된 모델에서 특정 속성을 업데이트하는 방법

cannot :all, Book 
if is_teacher? 
    can :update_certain_attribute, Book 
end 

하지만 내 예비, 내가 Best_In_Place을 사용하고 싶었 이후 : 나는 그렇게 생각 첫 번째 것은이 같은 것을 사용했다가 2.0에서 아직 개발로 속성 승인이 아직 캉캉에서 지원되지 않습니다 이해 연구 난 단지 아래

<%= best_in_place @book, :certain_attribute, :type => :input %> 

이 아닌 방법처럼 Best_In_Place 업데이트 의 속성을 사용할 수 있음을 알려줍니다 :

<%= best_in_place @book, :update_certain_attribute, :type => :input %> 

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 감사합니다 :)

답변

0

약 2 일

이 변수에 접근 속성되어 있는지 확인합니다, 그래서이 업데이트되는 경우가 best_in_place를 사용 모델/컨트롤러가 변수가 실제로 업데이트 할 수 없습니다에게 이야기로 업데이트

이렇게하려면 액세스 할 수있는 동적 속성을 살펴 봐야합니다. 라이언 http://railscasts.com/episodes/237-dynamic-attr-accessible

당신이

다시이 특정 속성에 대한 도움이되지 않습니다 다음과 같은 코드를 사용할 수 있습니다 best_in_place에 캉캉를 사용하여 조건을 가지고 있지만, 동적 속성과 함께하기 위해이 여기에 좋은 캐스트를 가지고 변수가 변경되지 않도록 액세스 할 수 있습니다.

+0

흠 나는 이것을 어떻게 구현할 수 있는지 조금 혼란 스럽습니다. 간단히 말해서 나는 더 이상 best_in_place를 사용하지 않을 것이라고 생각합니다. 나는 틀린가? :) 어쨌든, 고맙습니다. 나중에 집에서 깊이 확인해 보겠습니다. :) –