【问题标题】:How to pass an array from view to controller in Ruby on Rails如何在 Ruby on Rails 中将数组从视图传递到控制器
【发布时间】:2011-07-08 15:21:02
【问题描述】:

在我看来,我需要添加(动态)文本输入,并且我需要在控制器中获取它们的值(一旦用户提交相应的表单)。

我的输入是:

<input type="text" name="airports_input_origin" class="airports_input_origin" id="airports_input_origin_0" size="40"/> 

<input type="text" name="airports_input_origin" class="airports_input_origin" id="airports_input_origin_1" size="40"/>

等等……等等……

它们都具有相同的“名称”属性....所以我猜如果我这样做了

params[:airports_input_origin]

我会得到数组...但我错了...

我怎样才能得到这些值?

谢谢!

【问题讨论】:

    标签: ruby view controller parameter-passing


    【解决方案1】:

    你必须这样做:

    <input type="text" name="airports_input_origin[0]" class="airports_input_origin" id="airports_input_origin_0" size="40"/> 
    
    <input type="text" name="airports_input_origin[1]" class="airports_input_origin" id="airports_input_origin_1" size="40"/>
    

    Rails 知道,如果您在名称中标记这样的数字,它就是一个数组。

    因此,您可以有一个 JavaScript 函数,它遍历所有输入并在每次添加/删除目的地时重置它们的数字。使用正则表达式替换数字,或者您甚至可以对名称进行硬编码并更改“[x]”,如果这就是所有需要的话。

    【讨论】:

    • 我应该能够 params[:airports_input_origin].size 或 params[:airports_input_origin][0] ?
    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多