![](/img/trans.png)
[英]How to restrict who can invite users with devise_invitable and cancancan
[英]How to restrict a user from updating certain fields with CanCanCan?
因此,如果我有一個用戶,並且他可以創建/更新他的服務,但是他不能:publish(bool)它們,那么從update_params哈希中跳過此字段的最佳解決方案是什么?
我發現了類似的問題,但是它鏈接到從未發布過的CanCan 2.0,我想知道是否有一種方法可以使用CanCanCan解決此問題,但在其文檔中找不到任何內容。 非常感謝!
據我所知你做不到。 我將進行單獨的發布操作。 因此,我將完全省略來自表單和service_params
發布。
然后我會做這樣的事情:
Class ServicesController
def publish
@service = Service.find(params[:id])
@service.update_column(:publish, true)
end
end
然后才能
can :manage, Service
cannot :publish, Service
或者,您可以執行此操作(假設您有一個當前用戶,並且將其定義為管理員)
def service_params
if current_user.admin?
params.require(:service).permit(:my_field, :publish)
else
params.require(:service).permit(:my_field)
end
end
因此,如果它們不是管理員,則可以從參數中忽略它。 在這種情況下,您可能希望根據是否可以更改字段來在視圖中隱藏字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.