RailsAdmin定制操作可恢复软删除的记录 [英] RailsAdmin custom action to restore soft deleted records

查看:86
本文介绍了RailsAdmin定制操作可恢复软删除的记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将Rails 4.1.14与rails_admin 0.8.1,mongoid 5.0和 mongoid_paranoia 一起使用.我创建了 RailsAdmin自定义操作,以恢复软删除的用户.

I am using Rails 4.1.14 with rails_admin 0.8.1, mongoid 5.0 and mongoid_paranoia. I created RailsAdmin custom action to restore soft deleted Users.

class Restore
  ...
  register_instance_option :controller do
    Proc.new do
      object.restore
      ...
    end
  end
end

但是我不断得到

User with id '5695997df5740c17b0000002' could not be found

来自我的develoment.log

From my develoment.log

Started GET "/admin/user/5695997df5740c17b0000002/restore" for 127.0.0.1 at 2016-01-12 16:35:04 -0800
Processing by RailsAdmin::MainController#restore as HTML
  Parameters: {"model_name"=>"user", "id"=>"5695997df5740c17b0000002"}
MONGODB | localhost:27017 | rails425_dev.find | STARTED | {"find"=>"users", "filter"=>{"deleted_at"=>nil, "_id"=>BSON::ObjectId('56956c76f5740c1d68000000')}, "limit"=>-1}

问题在于每个default_scope查询会过滤掉delete_at不为nil的记录.关于如何覆盖它的任何建议?

The problem is per default_scope query filters out records where deleted_at is not nil. Any suggestions on how to override it?

推荐答案

不幸的是,由于我没有评论的名声,因此我必须将此列为答案.

Unfortunately, I'll have to list this as an answer because I do not have the reputation to comment.

我相信您的问题可以在这里得到回答: 如何在Rails Admin中显示不受范围限制的模型?

I believe your question may be answered here: How do I show unscoped models in Rails Admin?

我要采用的方法是创建一个满足我对RailsAdmin要求的范围,并改为使用该范围;就是说,通常我会尽量避免使用default_scope.

The way I'd approach it is to create a scope that does satisfy my requirements for RailsAdmin and use that scope instead; that said, in general I try to avoid default_scope whenever possible.

这篇关于RailsAdmin定制操作可恢复软删除的记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆