CancanCan检查提交的参数

Cancancan check submitted parameter

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

控制器获取:

Parameters: {"offer"=>{"revoked"=>"1", "user_id"=>"14"}, "id"=>"53"}

ability.rb:

can :update, Controller, :user_id => user.id
cannot :update, Controller, { :revoked => nil }   

控制器代码:

@offer.update(params)

这给我一个 Cancancan 错误,提示用户未获得授权。我想我需要指定 :revoked 在报价哈希中,但我无法找出正确的代码。

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

https://github.com/ryanb/cancan/wiki/Accessing-Request-Data

或者如何将参数传递到 Ability class 更具体地用于您的目的:

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

那么就是访问params的相关部分,检查是否通过了。