在我的Rails控制器中,我想require一个参数emails
。它必须是一个数组。
允许。
emails[][email protected]&emails[][email protected]
这是不允许的。
[email protected]
params.require(:emails)
将允许两者。前者是一个数组。后者为String。这是一个问题。
[params.permit(emails: [])
不需要emails
参数。
[params.require(:emails).permit([])
不起作用,因为params.require(:emails)
变得很聪明并返回一个数组,而不是ActionController :: Parameters。
如何允许emails[]=...
和禁止emails=...
?
就像塔德曼所说的那样,筛选是强参数的主要功能。
你可以看葡萄
desc "API demo", {}
params do
requires :id, type: Integer, desc: 'ID'
requires :name, type: Boolean, desc: 'xxx'
end
如果将意外的参数类型传递给它,则会收到错误消息