有人能帮我弄清楚如何要求和允许一组参数,看起来像这样:
<ActionController::Parameters {
"people"=>[
{"id"=>"1", "first"=>"Jane", "last"=>"Doe"},
{"id"=>"2", "first"=>"John", "last"=>"Doe"}
]
} permitted: false>
字符串
数据是用JavaScript编写的:
const formData = new FormData()
people.forEach(person => {
formData.append('people[][id]', person.id)
formData.append('people[][first]', person.first)
formData.append('people[][last]', person.last)
})
型
我已经尝试了一些不同的格式(有没有一种更Rails的方式来构建它?),以及许多不同的输入,但都没有成功。
params.require(:people).each { |person| person.permit(:id, :first, :last) }
型
这不会崩溃,但似乎也不允许任何事情。
我还尝试用people[][person][id]
设置我的数据,
params.require(:people).permit(person: [:id, :first, :last])
型
但那也没用
2条答案
按热度按时间7cjasjjr1#
字符串
第一行只是为了在缺少键时引发错误。
.permit(people: [:id, :first, :last])
允许people键和一个带有键:id, :first, :last
的哈希数组。2jcobegt2#
我遇到了这个问题,但需要在参数中允许其他顶级键(即在本例中为
{ people: [{...}, {...}], token: '...' }
)。最后,我发现这是有效的:
字符串
只是要注意,这返回一个数组,而不是一个散列,所以原来的结构是平坦的一点。只是为了以防万一,这是有用的其他人搜索像我一样。