我经常看到在input标签的name属性中有方括号。这是什么意思,为什么要使用它?
`input id="academy_name" name="academy[name]" size="30" type="text" />`
那么为什么要写成name="academy[name]"而不只是name="academy"呢?
请帮忙解答!
我经常看到在input标签的name属性中有方括号。这是什么意思,为什么要使用它?
`input id="academy_name" name="academy[name]" size="30" type="text" />`
那么为什么要写成name="academy[name]"而不只是name="academy"呢?
请帮忙解答!
这是因为开发者正在使用数组,因此他在名称外部加上了[]
方括号。
name
属性属于 academy
对象。当表单被提交时,它将 academy
对象中的属性映射到相应的属性。 - Michael ShimminsRoR将模型的属性映射到模型名称中,因此当您提交表单时,可以轻松地分配它们,例如:
Academy.create(params[:academy])
或者
@academy = Academy.find(params[:id])
@academy.update_attributes(params[:academy]
(也称为批量赋值)。
如果您检查发送到params
哈希中的表单的academy
对象,您将看到它具有每个方括号中包含的元素的元素。