gpt4 book ai didi

ruby-on-rails - Rails 4 强参数 : can I 'exclude' /blacklist attributes instead of permit/whitelist?

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:20 25 4
gpt4 key购买 nike

我正在将 Rails 3 应用程序迁移到 Rails 4,并且正在将 attr_accessible 属性转换为 Controller 中的强参数。 API Documentation显示如何“允许”属性:

def person_params
params.require(:person).permit(:name, :age)
end

然而,我的绝大多数属性都是批量分配安全的。我只需要将 :account_id:is_admin 等几个属性列入黑名单。

是否可以将属性列入黑名单而不是将几乎所有属性列入白名单?例如:

def user_params
params.require(:user).exclude(:account_id, :is_admin)
end

最佳答案

出于@Damien 概述的原因,我认为您真的不应该这样做,但这是我刚刚找到的解决方案。

params.require(:user).except!(:account_id, :is_admin).permit!

这将从哈希中删除 :account_id, :is_admin 并允许所有其他参数。但同样 - 这可能是不安全的。

为什么这有效?因为ActionController::Parameters继承自Hash!

2016 年 7 月 4 日更新

根据升级指南,在 Rails 5 中这可能不再有效

ActionController::Parameters No Longer Inherits from HashWithIndifferentAccess

关于ruby-on-rails - Rails 4 强参数 : can I 'exclude' /blacklist attributes instead of permit/whitelist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844435/

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