如何在具有相同值的单个表单中创建多个记录

时间:2012-02-13 00:23:48

标签: ruby-on-rails activerecord

我正在寻找一个干净的解决方案,从单个表单创建多个数据库记录,它们都具有在表单中指定的相同值。只有ID应该明显不同。

我需要这个功能让用户一次创建100多条记录作为一种模板。

理想情况下,用户可以在表格中输入一个数字,表示他/她想要用填充的值创建的记录数。

1 个答案:

答案 0 :(得分:0)

使用迭代器。例如:

def create_many
  count = params[:count].to_i
  # count within reasonable limits, check if object will validate
  if (1..100) === count && Object.new(params[:object]).valid?
    count.times { Object.create(params[:object]) }   # <= the iterator
    redirect_to my_custom_view   # <= custom 'show' view
  else
    render :text => "Couldn't do it."   # <= failure message
  end
end

此示例需要两个参数:object,其中包含资源属性,:count指定要创建的记录数。

您需要一个自定义show视图来处理获取和显示所有新创建的记录。