2014-01-14 22 views
0

當他/她無法更新該模型的其他屬性時,如何說'教師'只更新模型的某個屬性(比如模型'book')使用Cancan和Best_In_Place。據我所知,屬性的授權尚不支持在黃燦燦的,因爲它仍然是正在開發2.0,所以我想的第一件事就是用這樣的:如何使用Best_In_Place和Cancan更新來自受限模型的特定屬性

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

但因爲我想用Best_In_Place,我的初步研究告訴我,我只能使用屬性爲Best_In_Place更新 像下面

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

,而不是方法:

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

處理這個問題的最佳方法是什麼?謝謝:)

回答

0

更新爲談論兩件事情

這將確保該變量屬性的訪問,所以如果被更新使用best_in_place,模型/控制器將不允許變量實際更新

爲此,我認爲您需要查看可訪問的動態屬性。萊恩對此有口碑不錯的投http://railscasts.com/episodes/237-dynamic-attr-accessible

要使用上best_in_place您可以使用下面的代碼

再次,這並不針對特定屬性的幫助康康舞有一個條件,但與動態屬性相結合可訪問將確保變量不會被改變

+0

嗯我有點困惑我怎麼能實現這個:)簡單地看着它讓我覺得我不會再使用best_in_place ...或者我錯了嗎? :)無論如何,謝謝我以後會在家裏檢查這個問題:) –

相關問題