0

举个例子:

  def create

    resource = build_resource
    resource.assign_attributes(params[resource_instance_name], as: :admin)

    create! do |format|
      format.js {...}
    end

  end

上面的问题是属性没有被分配as: :admin,它们在没有任何检查的情况下被分配,所以这个方法没有任何效果。是create!方法吗?属性正在其他地方分配给此资源,我无法找到它在哪里。欣赏任何见解。

4

1 回答 1

0

在这里找到我的答案:https ://github.com/josevalim/inherited_resources/pull/153 。不得不覆盖as_rolerole_given?——

def as_role
  { as: current_user.highest_role }
end

def role_given?
  true
end

然后,如果您像我一样从主资源控制器继承,这将始终将角色应用于定义它的控制器或所有资源的属性。

于 2012-11-09T05:20:12.820 回答