根据数组元素的数量生成多个记录

时间:2017-02-10 15:01:24

标签: ruby-on-rails ruby

我想编写与数组一样多次重复的代码,然后将数据存储到数据库中。我认为这样做会顺利,但事实并非如此。 有什么不对吗?

感谢。

def create
  product = Product.new
  product_params['type'].each do |t|
    product.name = product_params['name']
    product.about = product_params['about']
    product.type = t
    product.save    
  end
end

params.require(:product).permit(:name,:about, type: [])

2 个答案:

答案 0 :(得分:3)

需要在每次迭代中初始化产品实例,以便每次在数据库中创建新记录而不是更新现有记录时:

def create
  product_params['type'].each do |t|
    Product.create(
      name: product_params['name'],
      about: product_params['about'],
      type: t
    )   
  end
end

答案 1 :(得分:2)

您要多次保存同一个对象。尝试移动product = Product.new循环内的each行。