举个例子:
def create
resource = build_resource
resource.assign_attributes(params[resource_instance_name], as: :admin)
create! do |format|
format.js {...}
end
end
上面的问题是没有为as: :admin
分配属性,它们是在没有任何检查的情况下分配的,所以这个方法没有任何效果。是create!
方法吗?属性正在其他地方分配给此资源,我无法找到它的位置。欣赏任何见解。
答案 0 :(得分:0)
在这里找到我的答案:https://github.com/josevalim/inherited_resources/pull/153。必须覆盖as_role
和role_given?
-
def as_role
{ as: current_user.highest_role }
end
def role_given?
true
end
然后,这将始终将角色应用于其定义的控制器的属性,或者如果您像我一样从主资源控制器继承,则将所有资源应用。