gpt4 book ai didi

ruby-on-rails - 如何限制用户使用 CanCanCan 更新某些字段?

转载 作者:行者123 更新时间:2023-12-04 07:38:51 24 4
gpt4 key购买 nike

因此,如果我有一个用户,并且他可以创建/更新他的服务,但他不能 :publish(bool) 他们,那么从 update_params 哈希中跳过此字段的最佳解决方案是什么?

我找到了 this类似的问题,但它链接到从未发布过的 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

所以如果他们不是管理员,你会从参数中省略它。在这种情况下,您可能希望隐藏 View 中的字段,这取决于它们是否可以更改字段。

关于ruby-on-rails - 如何限制用户使用 CanCanCan 更新某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com