gpt4 book ai didi

ruby-on-rails - 给定 id 列表,如何更新所有模型的 bool 属性?

转载 作者:行者123 更新时间:2023-12-04 16:50:29 25 4
gpt4 key购买 nike

我正在做类似于这些 railscast 剧集的事情:

http://railscasts.com/episodes/165-edit-multiple

http://railscasts.com/episodes/52-update-through-checkboxes

问题是那些只是试图修改选定的模型。我需要更新每个模型。

我发现的第一件事是 id not in () 并没有像我预期的那样返回所有内容,所以我不得不为空列表做一个特例。

此代码有效,但看起来不是很干。至少我应该能够将正常情况合并到一行中。

def update_published
if params[:book_ids].empty?
Book.update_all(published: false)
else
Book.where(id: params[:book_ids]).update_all(published: true)
Book.where("id not in (?)", params[:book_ids]).update_all(published: false)
end
redirect_to books_path
end

如有任何改进意见,我们将不胜感激。

最佳答案

为什么不只执行以下操作:

def update_published
Book.update_all(published: false)
Book.where(id: params[:book_ids]).update_all(published: true)
redirect_to books_path
end

它会更快,而且非常简单明了。

关于ruby-on-rails - 给定 id 列表,如何更新所有模型的 bool 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14331885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com