RoR ActiveRecord保存方法

时间:2011-07-16 14:56:25

标签: ruby-on-rails

我是Rails的新手,我试图在ActionController的Create方法中多次执行save方法以插入多个值

def create

  @pin = Pin.new(params[:pin])
  i = 1

  while i < 10
    if @pin.save
    end
  end

  redirect_to @pin

end

这可以工作但只插入一条记录 没有Contraints强制我的数据库中记录的唯一性。 请问我该怎么纠正这个?

2 个答案:

答案 0 :(得分:3)

一个AR对象映射到一行。您需要为要添加的每一行创建新对象。

类似的东西:

10.times do
  pin = Pin.new(params[:pin])
  pin.save
end

10.times do 
  Pin.create(params[:pin]
end

create方法创建AR对象并将其保存在数据库中。 但是,您无法重定向到10个对象。

答案 1 :(得分:0)

您应该使用create_multiple方法扩展您的资源并将params作为数组发送,请参阅详细信息here