【问题标题】:Square brackets in name attribute of input tag输入标签的名称属性中的方括号
【发布时间】:2012-10-12 07:29:01
【问题描述】:

我看到很多时候输入标签的名称属性中有方括号。它的用途和用途是什么?

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

那么为什么 name="academy[name]" 而不仅仅是 name="academy"。

请帮忙!

【问题讨论】:

  • 它将名称包装在学院哈希中,因此当您执行 param[:academy] 时,它将为您提供学院对象的所有属性

标签: html ruby-on-rails


【解决方案1】:

这是因为开发人员使用的是数组,因此他将名称包装在[] 方括号中

【讨论】:

  • 在 RoR 的情况下,它不会在表单上指示数组表示法。表示name属性属于academy对象。当表单被回发时,它会将academy 对象中的属性映射到相应的属性。
【解决方案2】:

RoR 将模型的属性映射到模型名称中,以便您在发布表单时可以轻松分配它们,例如:

Academy.create(params[:academy])

或

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

(也称为批量分配)。

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

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 2011-01-22
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多