将params传递给rails控制器中的数组索引

时间:2017-12-06 19:08:31

标签: ruby-on-rails arrays parameters ruby-on-rails-5

我通过表单收集用户输入,并尝试将值组合到控制器中的数组变量中。

控制器

MyController < ApplicationController
  def con_action
   @array_var = Array.new(n)
   @array_var[index] = params[:user_input]
  end
end

视图

<%= form_for :doesntmatter do |f| %>
    <%= f.text_field :user_input, placeholder: 'input for index 0'

    <%= f.text_field :user_input, placeholder: 'input for index 1'
<% end %>

同样,array.size总是在变化,所以让它变得动态是理想的。

我编辑它所以更有意义,我的问题是我不知道数组的哪个索引:user_input属于并且需要让表单提供索引号

1 个答案:

答案 0 :(得分:3)

在你看来,使用这个

    <%= form_tag(controller: : MyController, action: : con_action) do %>
       <%5.time do |n|%>
    <%= text_field_tag "user_input_"+n.to_s, nil,placeholder: "something" %>
       <%end%>
    <%submit_tag%>
    <%end%>

然后在你的控制器中你会得到你想要的参数 使用to_i函数转换为整数

    def con_action
      @array_var = Array.new(n)
       5.times do |n|
       @array_var[n] = params['user_input_'+n.to_s]
      end
     end

P.S。确保你有mycontroller的路线#con_action