0

我正在使用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不为零。有关如何覆盖它的任何建议?

+1

你是如何设法恢复带有偏执狂的rails_admin中的记录的?我添加了with_deleted和only_deleted范围,我看到它们但无法恢复或永久销毁它们。即使添加了自定义操作来恢复它,但它说没有找到记录。 – StarWars

+0

要回答近2年前的@StarWars问题,请参阅Dave Burt的答案[这里](https://stackoverflow.com/questions/20069425/how-do-i-show-unscoped-models-in-rails-admin) – Chiperific

回答

1

不幸的是,我不得不列出这个答案,因为我没有评论的声望。

我相信你的问题可以在这里得到解答: 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 –