如何在Ruby on Rails中将数组从视图传递到控制器

con*_*t01 2 ruby controller view parameter-passing

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

我的意见是:

<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"/>
Run Code Online (Sandbox Code Playgroud)

等......等等......

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

params[:airports_input_origin]
Run Code Online (Sandbox Code Playgroud)

我得到阵列...但我错了......

我怎样才能获得这些价值?

谢谢!

Mun*_*PhD 6

你必须这样做:

<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"/>
Run Code Online (Sandbox Code Playgroud)

如果你在名称中标记这样的数字,Rails会理解它是一个数组.

因此,您可以使用JavaScript函数迭代所有输入,并在每次添加/删除目标时重置其数字.使用正则表达式替换数字,或者您甚至可以对名称进行硬编码并更改"[x]"(如果这是所需的全部内容).