Rails 活跃管理员审查用户帖子

Rails active admin review user posts

我想让管理员查看描述。因此,无论何时用户发布描述,管理员都可以批准或拒绝它。如果获得批准,它将显示在索引页上。目前用户可以添加说明,但管理员无法对其进行审核。有什么办法可以做到这一点吗?

index.html.erb

<% @posts.each do |post| %>
  <p> <%= post.description %> </p>
<% end %>

admin/post.rb

ActiveAdmin.register Post do
  permit_params :description

  index do
    id_column
    column :description
  end

  form do |f|
    f.inputs do
      f.input :description
    end
    f.actions
  end
end

将新的布尔字段添加到 post 调用,默认值为 false:

class AddReviewedToPosts < ActiveRecord::Migration
  def self.up
    add_column :posts, :reviewed, :boolean, default: false
  end

  def self.down
    remove_column :posts, :reviewed
  end
end

然后在索引页下的 AA 上创建一个按钮,将其设置为已审核:

index do
  id_column
  column :description
  column "" do |post|
    link_to 'Mark as reviewed', admin_posts_reviewed_path(post)
  end
end

然后最后一件事是在 admin/posts.rb 上创建审核操作:

def reviewed
  @post = Post.find(params[:id])
  if @post.present?
    @post.update_attribute(:reviewed, true)
    flash[:notice] = 'Post marked as reviewed'        
  else
    flash[:error] = 'Could not find post'
  end

  redirect_to admin_posts_path
end

不要忘记将操作添加到 routes.rb!

现在您可以在布尔字段为真时显示它。

代码未经测试,这是我的想法。