Ruby on Rails - 检查用户是否添加了任何域以及是否已获得批准

时间:2017-05-30 23:43:09

标签: ruby ruby-on-rails-4

在我的应用程序中,我有模型Post& Domain。我的应用程序有效,用户必须提交domain才能看到posts中的所有posts#index

目前,我正在检查用户是否已提交任何 domain&全部展示posts我是通过以下方式完成的:

- if current_user.domains.blank?
  %p Please add a domain to see all posts
- else
  - @posts.each do |post|
  // each post

我想改变我目前的做法。所有提交的domains首先需要批准status: true)。有时用户提交多个域名。

我现在想要实现的是在显示domains之前检查approved/status: true是否都是posts

所以基本上检查current_user是否有domain,如果是,请在展示之前检查domains是否已经批准status: true)他们posts

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式进行操作

- if current_user.domains.approved_domains.blank?
  %p Please add a domain to see all posts
- else
  - @posts.each do |post|
  // each post

并将范围approved_domains添加到域模型,如下所示

scope :approved_domains, -> { where(status: true) }