所以我有一个模型:注意属于model:文件夹,它带有:folder_id。 :folder模型采用:privacy boolean,它应该确定文件夹的注释是否可以被其他用户看到,或者不是用户#show视图。因此,如果:privacy设置为true,则无法看到文件夹的注释,但如果:privacy设置为false,则可以查看它们。
到目前为止,我已经能够在user_controller中显示public:带有以下实例变量的文件夹:
@public_folders = @user.folders.where(privacy: false)
当a:folder_id param出现时,我已经能够获得:文件夹的注释:
@folder_notes = @user.notes.where(folder_id: params[:folder_id])
所以我的问题是,如何选择所有:属于any:文件夹的注释:privacy设置为false?
答案 0 :(得分:1)
@user.notes.joins(:folder).where(folders: { privacy: false })
虽然,我在Note
:
scope :with_public_folders, -> { joins(:folder).where(folders: { privacy: false }) }
...然后你可以这样做:
@user.notes.with_public_folders