【问题标题】:How to use 2d array with form in Ruby on Rails?如何在 Ruby on Rails 中使用带有表单的二维数组?
【发布时间】:2014-02-23 11:31:14
【问题描述】:

我有一个模型。在那个模型中,我创建了一个数组属性,但我不能在表单中使用该属性。

这是我的问题:

= form_for :my_form_name do |f|
  %table
    - for i in 1..10 do
      %tr
        - for j in 1..10 do
          %td
            = f.text_field :example[i][j]

在这种情况下,我想从盒子中收集数据到名为 example 的属性。

当我运行应用程序时,我得到了这个错误:

undefined method `[]' for nil:NilClass

【问题讨论】:

    标签: ruby-on-rails ruby arrays forms multidimensional-array


    【解决方案1】:

    我猜你在:example 上调用[],而不是创建符号。只需使用字符串

    = f.text_field "example[#{i}][#{j}]"
    

    【讨论】:

    • 谢谢,我是这样写的,但我有新错误:undefined method `example[1][1]' for #<
    • 那是另一回事。 form_for 接受对象,它从字段中提取默认值。这就是为什么它在:my_form_name 上调用example[1][1]。你需要的是form_tag 方法。它有不同的参数,查看文档api.rubyonrails.org/classes/ActionView/Helpers/…
    • 谢谢,也许我会像这样编辑我的model.rb:serialize :example
    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多