ruby-on-rails – 如何使用对象数组执行强参数
发布时间:2020-12-17 02:26:11 所属栏目:百科 来源:网络整理
导读:如果我有一个用户 def user_params params.require(:user).permit(:name,:age)end 我明白了.我想批量创建用户.因此,用户可以填写用户的列表(理论上无穷无尽),他们会进来: [{name: "name",age: 12},{name: "name",age: 22},age: 32}] 问题是,我如何使用强参
如果我有一个用户
def user_params params.require(:user).permit(:name,:age) end 我明白了.我想批量创建用户.因此,用户可以填写用户的列表(理论上无穷无尽),他们会进来: [{name: "name",age: 12},{name: "name",age: 22},age: 32}] 问题是,我如何使用强参数?我知道我可以循环遍历数组并创建记录,我明白了.我的理解是,强大的params通常是一个好主意,安全明智. 什么是强大的障碍保护我?如果我只是对用户数组进行循环,那么我将在这里打开自己的什么?如何使用强力参数或其他方法正确完成? 解决方法
强大参数的全部要点(在rails 4中引入),目的是保护应用程序免受
mass assignment个漏洞的攻击.例如,假设您有一个User模型,它有一个admin属性.如果您在理论上使用质量分配,如果您没有过滤掉某些内容,那么有人可能会为admin属性赋值;见下文
class UserController < ApplicationController def create #{name: 'Joe',score: 7,title: 'Mr',admin: true} params hash User.create(params) end end 现在,如果你的应用程序的用户如何传递这些值,他们只是自己和管理员,并可以随心所欲.这就是为什么你会使用强params来做到这一点. class UserController < ApplicationController def create User.create(user_params) end def user_params params.require(:name).permit(:title,:score) #noticed admin is not allowed end end 现在要创建具有强params的多个记录,您可以执行此操作 class UserController < ApplicationController def create user_params[:users].each do |u| User.create(u) end end def user_params params.permit(:users,array: [:name,:age]) end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |