我有一项用户(我称之为我的应用程序提供者),我试图写一个自定义的验证方法,以防止提供商删除对方的帖子(在我的应用程序调用的过程)。现在我的程序控制器中有了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