Ruby on rails 根据数组的元素数生成多条记录

Ruby on rails 根据数组的元素数生成多条记录,ruby-on-rails,ruby,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

我希望编写重复次数与数组相同的代码,然后将数据存储到数据库中。我认为这很顺利,但没有。 有什么不对劲吗

谢谢

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: [])

您多次保存同一对象。尝试在每个循环中移动product=product.new行。

您多次保存同一对象。尝试在每个循环中移动product=product.new行。

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

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

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

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

仅供参考,当询问为什么某些东西不起作用时,您还应该提供关于它如何不起作用的信息。与本例类似-仅创建了一个/最后一个产品。product.errors将显示失败的错误。仅供参考,当询问为什么某些产品不起作用时,您还应提供有关它如何不起作用的信息。与本例类似-只创建了一个/最后一个产品。如果失败,product.errors将显示错误。@johnny,欢迎您。如果我的回答确实对您有所帮助,请单击itI附近的绿色复选标记,将其标记为已接受。我是个初学者,我不懂。谢谢你的帮助@约翰尼,欢迎你。如果我的回答确实对您有所帮助,请单击itI附近的绿色复选标记,将其标记为已接受。我是个初学者,我不懂。谢谢你的帮助!