Attribut de mise à jour en bloc sur plusieurs modèles dans ActiveRecord?
J'ai un simple has_many
association, et je veux changer un attribut de public
à private
l'objet associé. Quelle est la meilleure façon de le faire:
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
user = User.first #=> #<User...>
user.posts.count #=> 100
# something like this:
user.posts.bulk_update_attribute("privacy", "private") #=> 1 DB call
source d'informationauteur Lance Pollard
Vous devez vous connecter pour publier un commentaire.
Je crois que vous êtes à la recherche pour update_all.
Dans votre exemple, vous auriez du le réécrire pour être quelque chose comme
Ou comme @jenjenut233 souligne