Rails活动管理员审核用户帖子

时间:2015-10-27 19:22:39

标签: ruby-on-rails ruby-on-rails-4 activeadmin

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

index.html.erb

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

管理员/ 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

1 个答案:

答案 0 :(得分:0)

添加新的布尔字段以发布名为review的发布,默认值为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!

现在,如果布尔字段为true,则可以显示它。

代码未经过我的测试。