【问题标题】:Ruby On Rails: How do I create multple text_field_tags that store the values into the same array?Ruby On Rails:如何创建多个 text_field_tag 将值存储到同一个数组中?
【发布时间】:2012-08-24 16:23:51
【问题描述】:

我需要能够创建一个表单,其中有几个 text_field_tags 根据另一个模型的实例动态创建。我希望能够将输入这些 text_field_tags 的值存储到同一个数组中,一旦提交表单,我就可以在控制器中作为参数访问该数组。这可能吗?

【问题讨论】:

  • 查看this question 以了解(我认为)您所追求的示例。
  • 当我没有模型支持的表单时,这对我很有用。我有一个高度动态的表单(通过 jQuery),其中包含 1 - 许多文本字段,但我的 params 中需要更多结构

标签: ruby-on-rails


【解决方案1】:

如果你给他们都一样的名字,并在末尾附加 [] 如下:

 <%= text_field_tag "some_fields[]" %>
 <%= text_field_tag "some_fields[]" %>
 <%= text_field_tag "some_fields[]" %>

您可以从控制器访问这些:

  some_fields = params[:some_fields] # this is an array

如果您在方括号之间输入值,rails 会将其视为哈希:

 <%= text_field_tag "some_fields[1]" %>
 <%= text_field_tag "some_fields[2]" %>
 <%= text_field_tag "some_fields[3]" %>

将被控制器解释为键为“1”、“2”和“3”的哈希

【讨论】:

  • 谢谢,这就是我想要做的,但显然当我命名数组 arguments[] 时,我遇到了错误。
  • 如果你混合匹配数组和哈希语法你会得到一个错误。
猜你喜欢
  • 2016-11-05
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多