给定一个具有多个附件的模型 Post,并且附件具有隐藏标志。在整个应用程序中,我想轻松地说 post.attachments 并且只获取可见的,所以我在 Attachment 模型中设置了一个默认范围(使用 squeel):
default_scope -> { where { (hidden != true) | (hidden == nil) } }
但是管理页面需要能够查看帖子的所有附件,而不仅仅是可见的附件(这样您就可以切换隐藏的复选框)。这样做的默认方式(在 admin/posts.rb 中)使用 default_scope 并且只允许我编辑可见的:
f.has_many :attachments do |a|
...
end
我知道我不能使用 default_scope 而是将其命名为 :visible,然后在任何地方(管理页面除外)都说 post.attachments.visible,但我不想这样做。
如何在管理页面上取消子附件的范围?