2012-11-09 60 views
0

作爲一個例子:Inherited_resources建立資源作爲角色

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

在這裏找到我的答案: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 

那麼這將始終適用的角色,爲它要麼被定義在控制器或所有資源的屬性,如果你從主資源控制器繼承像我這樣做。

+0

我認爲它是'as_role'而不是'has_role' – herophuong

+0

@herophuong所以它是。謝謝。我會更新答案。 –