2015-06-15 36 views
1

所以我有一个模型:注意属于model:folder的文件夹需要:folder_id。 The:文件夹模型需要一个:隐私布尔值,用于确定该文件夹的笔记是否可以被其他用户看到或不在用户#show view中。因此,如果:privacy设置为true,则无法看到文件夹的笔记,但在以下情况下可以查看它们:privacy设置为false。如何根据模型中的布尔值选择属于模型的项目

到目前为止,我已经能够显示公众:在我user_controller以下实例变量文件夹:

@public_folders = @user.folders.where(privacy: false) 

,我一直能够得到一个:文件夹的注意事项时:folder_id PARAM存在与此:

@folder_notes = @user.notes.where(folder_id: params[:folder_id]) 

所以我的问题是,我怎么能选择所有:属于任何注释:隐私设置为false:其中的文件夹?

回答

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 
相关问题