0

我正在开发一个 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 条记录。但它没有发生。谁能告诉我如何使用数组作为每行的区分因子插入多条记录?

4

1 回答 1

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 上!你看到任何错误。

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

于 2012-12-12T16:50:00.850 回答