Ruby on rails 4 Cancancan检查提交的参数

Ruby on rails 4 Cancancan检查提交的参数,ruby-on-rails-4,cancancan,Ruby On Rails 4,Cancancan,如何让cancancan检查参数以查看用户是否可以更新 控制器获取: Parameters: {"offer"=>{"revoked"=>"1", "user_id"=>"14"}, "id"=>"53"} 能力.rb: can :update, Controller, :user_id => user.id cannot :update, Controller, { :revoked => nil } 控制器代码: @offer.update(pa

如何让cancancan检查参数以查看用户是否可以更新

控制器获取:

Parameters: {"offer"=>{"revoked"=>"1", "user_id"=>"14"}, "id"=>"53"}
能力.rb:

can :update, Controller, :user_id => user.id
cannot :update, Controller, { :revoked => nil }   
控制器代码:

@offer.update(params)

这给了我一个Cancancan错误,即用户未经授权。我想我需要指定:reversed在offer散列中,但我无法找到正确的代码。

如何更改能力类可以访问的内容:

或者如何将参数传递到能力类中,以便更具体地用于您的目的:

然后,只需访问参数的相关部分并检查它是否通过

# CanCan - pass params in to Ability
# https://github.com/ryanb/cancan/issues/133
def current_ability
    @current_ability ||= Ability.new(current_user, params)
end