为什么declarative_Authorization中的:attribute_check找不到ID

时间:2012-10-28 21:15:09

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 declarative-authorization

我在Ruby on Rails 3.1上使用Declarative_Authorization很多天都遇到了问题。 我将它添加到每个控制器的顶部:

class UsersController < ApplicationController

    # Verifies that the user is connected and/or authorized to access the methods
    filter_access_to :all, :attribute_check => true

    (...)
end

它允许我在我的authorization_rules.rb

上拥有此功能
has_permission_on [:albums], :to => [:adding] do
    if_attribute :group => { :user => is { user } }
end

但是当我添加:attribute_check => true时,我收到此错误:

Couldn't find {Model} without an ID

我完全迷失了,我开始使用这个宝石。

2 个答案:

答案 0 :(得分:0)

您的用户变量可能为null,因此请找出错误原因为

答案 1 :(得分:0)

我发现了这个技巧,只需将它添加到控制器的顶部:

class Group
    before_filter :set_group
    (...)
    protected
    def set_group
        @group = Group.find_by_slug(params[:slug])
    end
end