RailsAdmin自定义操作来恢复软删除记录
问题描述:
我正在使用Rails 4.1.14与rails_admin 0.8.1,mongoid 5.0和mongoid_paranoia。我创建了RailsAdmin custom action来恢复软删除的用户。RailsAdmin自定义操作来恢复软删除记录
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
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查询筛选出记录,其中deleted_at不为零。有关如何覆盖它的任何建议?
答
不幸的是,我不得不列出这个答案,因为我没有评论的声望。
我相信你的问题可以在这里得到解答: How do I show unscoped models in Rails Admin?
我想接近它是建立一个范围,做满足我的要求RailsAdmin和使用范围,而不是方式;这就是说,一般来说我尽量避免default_scope
。
+1
谢谢。提供每个链接我必须修改MainController中的get_object。 def get_object fail(RailsAdmin :: ObjectNotFound)除非(@object = @ abstract_model.model.unscoped.find(params [:id])) end –
你是如何设法恢复带有偏执狂的rails_admin中的记录的?我添加了with_deleted和only_deleted范围,我看到它们但无法恢复或永久销毁它们。即使添加了自定义操作来恢复它,但它说没有找到记录。 – StarWars
要回答近2年前的@StarWars问题,请参阅Dave Burt的答案[这里](https://stackoverflow.com/questions/20069425/how-do-i-show-unscoped-models-in-rails-admin) – Chiperific