【问题标题】:Posts approval using CanCan and Devise [Help Needed]使用 CanCan 和 Devise 发布批准 [需要帮助]
【发布时间】:2013-07-08 13:44:56
【问题描述】:

如何使帖子处于待处理状态并等待管理员批准?

我正在使用 CanCan 来制作角色。我的角色是一个单独的模型。用户拥有多个角色:通过分配

当管理员打开帖子索引有待处理帖子时,我需要通知管理员。

我想要一个侧边栏有这样的东西 已批准帖子 (x) 待处理帖子 (x) 已删除帖子 (x) 其中x是变量数,指帖子数

【问题讨论】:

  • 我已经重写了这个,它可能不是你想要的。但是,请努力写出体面的英语。不这样做是得不到答复的最快方法。
  • 您想如何通知管理员?电子邮件、短信、信鸽、推送?
  • 我更新了我的问题
  • 如果我的回答解决了您的问题,请您将其标记为已接受。

标签: ruby-on-rails ruby-on-rails-3 devise cancan


【解决方案1】:

在模型中创建过滤器

def self.pending
  where(status: 'pending')
end

def self.approved
  where(status: 'approved')
end

然后使用:

Post.pending

如果您不想选择模型中的每个变量,也可以优化搜索参数。

在您看来,应该做到以下几点:

<%= Post.pending.size %>

嗯,这会给你计数。

或者,因为将它移到控制器中很好。您可以将此添加到您的控制器操作中:

@pending = Post.pending.size

然后在您的视图中使用以下内容:

<%= @pending %>

== 编辑 ==

要自动向用户帖子添加待处理并批准管理员帖子,您可以在控制器操作(更新和保存)中执行以下操作:

@post.pending = false if current_user.admin? 
@post.save

或者把它放在一个你不需要调用 save 来保存数据库查询的现有块中。

显然,假设您的数据库中的pending默认设置为true,还有其他方法可以做到这一点。

【讨论】:

  • 首先我必须添加两个属性,分别称为 pendingapproved ,对吧?
  • 你能在view之前为我解释一下吗,我已经有一个工作articles model只需要知道下一步做什么,你需要看我的model和@ 987654332@?
  • 以及如何发帖,如果普通用户应该挂起,如果他是管理员应该自动发帖
  • 这有点超出了这个问题的范围。不过,我已经更新了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2012-12-31
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
相关资源
最近更新 更多