Ruby on Rails使用计数器,即“i”,变量名

我在Rails中有一个表单,用户可以在其中输入多个记录。 我将编写一些JavaScript,用户可以拥有几乎无限数量的记录。 我的哈希看起来像这样:

inputA_1, inputB_1, inputC_1 inputA_2, inputB_2, inpuctC_2 

在我的控制器中,我想做一个while循环来遍历行并将它们保存到数据库中,例如:

 z = 0 i = 1 while z = 0 @inputA = [:params][:inputA_i] @inputB = [:params][:inputB_i] @inputC = [:params][:inputC_i] if @inputA.nil? z=1 else @record = [inputA: @inputA, inputB: @inputB, inputC: @inputC] @record.save i = i + 1 end end 

问题是我不知道如何制作“ i:inputA_ii的值。

任何帮助,将不胜感激。

i插入字符串并将字符串转换为symbol

 @inputA = [:params]["inputA_#{i}".to_sym] @inputB = [:params]["inputB_#{i}".to_sym] @inputC = [:params]["inputC_#{i}".to_sym] 

我可以建议使用表单元素的数组序列化吗?:

 

当提交具有该HTML的表单时,值将变为params哈希上的数组:

 params[:inputA] #=> ["Hi", "There", "Sir"] 

因此,您所有的JavaScript所要做的就是创建更多具有相同名称的输入,以[]结尾。 在控制器中处理这些输入简单得多。

 params[:inputA].each do |value| @record = Record.new @record.inputA = value @record.save end 

你可以像这样制作一个字符串

 "hello #{name}" 

要么

 "%s means %s" %["how do you do?", "hello"] 

希望它可以帮助!