我正在寻找一个干净的解决方案,从单个表单创建多个数据库记录,它们都具有在表单中指定的相同值。只有ID应该明显不同。
我需要这个功能让用户一次创建100多条记录作为一种模板。
理想情况下,用户可以在表格中输入一个数字,表示他/她想要用填充的值创建的记录数。
答案 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
视图来处理获取和显示所有新创建的记录。