如何在文本字段中输入代码列表,通过","并获取相同数量的单独对象 Rails



我正在写一个Ruby on Rails项目,我被困在一个地方…我有一个类Product,这个类has_many:类代码。现在,我一次一个地在文本框中输入代码,得到一个对象和一个代码。我想在文本字段中输入一个代码列表,通过","并得到相同数量的独立对象

我得到这个错误-在giftcodescontroller# create中出现TypeError无字符串到整数的隐式转换

当我用调试器检查时,我没有看到任何Integer
@code = Code.new(code_params)
if @code.code.include? ","
@array = @code.ode.split(",")
@array.each do |n| 
@code.code = @array[n]
@code.save
end
flash[:success] = "Code´s added!"
redirect_to root_path
else
if @code.save
flash[:success] = "Code added!"
redirect_to root_path
else
flash[:danger] = "Error!"
end
end

each方法返回每个数组元素的VALUE,而不是索引。

所以这是错误的…

@array.each do |n| 
@code.code = @array[n]
@code.save
end

这是正确的…

所以这是错误的…

@array.each do |n| 
@code.code = n
@code.save
end

但是即使这样也是错误的,因为您想为每个数组元素创建一个新代码,所以…

@array.each do |n| 
code = @product.codes.build
code.code = n
code.save
end

还有一些边缘情况,你也需要解决,比如如何编辑现有的产品代码,但希望这将开始你。

最新更新