Lan*_*ard 10 activerecord ruby-on-rails
我有一个简单has_many
的关联,我想从改变属性public
到private
关联的对象.最好的方法是什么:
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
Run Code Online (Sandbox Code Playgroud)
the*_*eIV 33
我相信你正在寻找update_all.
在您的示例中,您将其重写为类似的内容
Post.update_all("privacy = 'private'", ["user_id = ?", user.id])
Run Code Online (Sandbox Code Playgroud)
或者@ jenjenut233指出
user.posts.update_all("privacy = 'private'")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10494 次 |
最近记录: |