我有一項用戶(我稱之爲我的應用程序提供者),我試圖寫一個自定義的驗證方法,以防止提供商刪除對方的帖子(在我的應用程序調用的過程)。現在我的程序控制器中有了correct_user方法。如何阻止用戶刪除其他用戶的帖子?
def correct_user
@provider = @procedure.provider.find(params[:id])
redirect_to(provider_path(current_provider)) unless current_provider?(@provider)
末
我把它用在我的程序控制器過濾器之前以下,也:
before_filter :correct_user, :except => [:index, :show]
我也得到當試圖編輯一個程序,甚至供應商的以下錯誤自己的程序:
NoMethodError (undefined method `provider' for nil:NilClass)
app/controllers/procedures_controller.rb:8:in `correct_user'
Parameters: {"id"=>"523"}
從這個錯誤的外觀上來看,該correct_user方法爲f引入過程ID而不是提供者ID。我怎樣才能解決這個問題?由於
不是你問什麼,但這似乎更像是一個比一個驗證一個授權問題。寶石像'cancan'或'pundit'這樣的東西都是關注的。 – elements