RailsAdmin定制操作可恢复软删除的记录 [英] RailsAdmin custom action to restore soft deleted records
问题描述
我正在将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屋!