1

Rails 4.1.14 と rails_admin 0.8.1、mongoid 5.0 およびmongoid_paranoiaを使用しています。論理的に削除されたユーザーを復元するため の RailsAdmin カスタム アクションを作成しました。

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

しかし、私は得続けます

User with id '5695997df5740c17b0000002' could not be found

私の開発ログから

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 が nil でないレコードを除外することです。それをオーバーライドする方法に関する提案はありますか?

4

1 に答える 1

2

残念ながら、コメントする評判がないため、これを回答としてリストする必要があります。

あなたの質問はここで答えられると思います: How do I show unscoped models in Rails Admin?

私がアプローチする方法は、RailsAdmin の要件を満たすスコープを作成し、代わりにそのスコープを使用することです。default_scopeとはいえ、一般的に私は可能な限り避けようとしています。

于 2016-01-13T11:08:40.227 に答える