我的授权规则:
role :tester do
has_permission_on [:regression_test_test_runs, :regression_test_jobs], :to => :manage
has_permission_on [:authorization_rules], :to => [:read, :manage]
has_permission_on [:users], :to => :edit do
if_attribute :user => is {user}
end
end
我的用户控制器
filter_access_to :all, :attribute_check => true
为什么我仍然被拒绝了?我试过玩,我仍然无法得到当前用户,这是一个测试人员来编辑他自己的个人资料。
答案 0 :(得分:0)
您可能需要将授权规则更改为:
role :tester do
...
has_permission_on [:users], :to => :edit do
if_attribute :id => is {user.id}
end
end
我猜测用户没有名为user的属性,这就是原始示例失败的原因。您必须将用户的ID与当前用户的ID进行比较。