2012-10-12 35 views
8

我看到很多时间输入标记的名称属性中有方括号。它是什么以及为什么使用它?输入标记名称属性中的方括号

 
    `input id="academy_name" name="academy[name]" size="30" type="text" />` 

那么为什么name =“academy [name]”而不只是name =“academy”。

请帮忙!

+0

它在学院哈希名wrape名称,所以当你做参数[:学院]它会给哟学院对象的所有属性 – Amar

+0

哦知道了....感谢阿马尔:) –

回答

10

一些服务器端框架,包括Ruby on Rails的名称,可以使用那种符号的为表明他们应该在单个服务器端对象(一个关联数组 - 例如map - 在Ruby on Rails的情况下)中构建数据。因此,例如,如果你有name =“user [email]”和name =“user [phone]”并提交了表单,那么在你的Ruby on Rails代码中,你将检索到一个用户对象来自请求,并且它将具有密钥电子邮件和电话。

+0

好吧......谢谢Dipak! –

1

这是因为开发人员正在使用数组,因此他被包裹在[]栏括号

+3

在RoR的情况下,它不表示表单上的数组符号。它表明'name'属性属于'academy'对象。当表单回传时,它将'academy'对象中的属性映射到相应的属性。 –

0

回报率映射的型号名称中的模型的属性,所以,当你张贴的形式,你可以很容易地将它们分配,如:

Academy.create(params[:academy]) 

@academy = Academy.find(params[:id]) 
@academy.update_attributes(params[:academy] 

(亦称质量分配)。

如果您检查academy对象并将其发送到params散列中的表单,您将看到它包含方括号中包含的每个元素的元素。

+0

好吧明白了..谢谢Michael! –

相关问题