#app/model/user.rb
has_many :photos
现在,有时我必须这样做
@user.photos.map(&:destroy)
这会加载N+1
查询。有没有办法使这个可扩展,所以它删除1-2
查询?
我正在使用Rails 4.0.0
和postgres (PostgreSQL) 9.3.2
答案 0 :(得分:0)
如果您定义foreign key constraint with ON DELETE CASCADE
,则删除父行时会自动删除所有依赖行。那你只需要一个命令。
DELETE FROM users WHERE user_id = $user_id;
要删除所有照片并保留用户:
DELETE FROM photos WHERE user_id = $user_id;