如何在Ruby on Rails中一次更新多条记录?

时间:2012-12-12 16:31:07

标签: database ruby-on-rails-3 update-attributes

我正在开发一个Ruby on Rails应用程序。在我的控制器中,我需要多次更新表属性。我把这个逻辑放在控制器中。

def index   
  if request.post?
    @user_new = Bookmark.new(params[:user_new])
    tags = @user_new.tags.split(",")
    i=0
    while i < tags.length
      @user_new.update_attributes(:title => @user_new.title, :url => @user_new.url, :tags => i)  
      i=i+1
    end

   @check = "hello"
  end   

 end

迭代while循环,直到达到标签数组大小。并且在表格内使用不同的值进行多次更新。

这应该会产生所有记录的更新。如果数组大小为3,则应插入3条记录。但它并没有发生。任何人都可以告诉我如何使用数组作为每行的微分因子插入多个记录?

1 个答案:

答案 0 :(得分:0)

这样的事情会起作用吗?

@user_new = Bookmark.new(params[:user_new])
if @user_new.save!
  @user_new.tags.split(",").each do |tag|
    tag.update_attributes(:title => @user_new.title, :url => @user_new.url)  
  end
else
  < do something else >>
end

或者您可以使用.create代替。

按照@Thilo中的其他帖子为标记编制索引。

另外,如果你运行这个!在update_attributes上!你看到有什么错误。

您可能会遇到一些验证错误。试试并检查控制台/日志。