Inherited_resources将资源构建为角色

时间:2012-11-09 04:25:59

标签: ruby-on-rails-3

举个例子:

  def create

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

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

  end

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

1 个答案:

答案 0 :(得分: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

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