From dbcd35d84b8e3b77f25d0ca5e1b76749929b8a5e Mon Sep 17 00:00:00 2001 From: Marius Seritan Date: Mon, 31 Jan 2011 19:48:43 -0800 Subject: [PATCH] Add ability to save simple mongoid objects (keys hardcoded to :_id). --- lib/rails_admin/adapters/abstract_object_mongoid.rb | 11 +++++++++++ lib/rails_admin/adapters/mongoid.rb | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 lib/rails_admin/adapters/abstract_object_mongoid.rb diff --git a/lib/rails_admin/adapters/abstract_object_mongoid.rb b/lib/rails_admin/adapters/abstract_object_mongoid.rb new file mode 100644 index 0000000000..38bfd6634a --- /dev/null +++ b/lib/rails_admin/adapters/abstract_object_mongoid.rb @@ -0,0 +1,11 @@ +require 'rails_admin/abstract_object' +module RailsAdmin + module Adapters + class AbstractObjectMongoid < RailsAdmin::AbstractObject + def attributes=(attributes) + object.send :attributes=, attributes + end + end + end +end + \ No newline at end of file diff --git a/lib/rails_admin/adapters/mongoid.rb b/lib/rails_admin/adapters/mongoid.rb index 614e237eb8..b3bc1c71ad 100644 --- a/lib/rails_admin/adapters/mongoid.rb +++ b/lib/rails_admin/adapters/mongoid.rb @@ -1,6 +1,7 @@ require 'mongoid' require 'rails_admin/config/sections/list' require 'rails_admin/abstract_object' +require 'rails_admin/adapters/abstract_object_mongoid' module RailsAdmin module Adapters @@ -18,7 +19,7 @@ def self.can_handle_model(model) def get(id) if object = model.where(:_id=>BSON::ObjectId(id)).first - RailsAdmin::AbstractObject.new object + RailsAdmin::Adapters::AbstractObjectMongoid.new object else nil end @@ -28,6 +29,10 @@ def get_bulk(ids) model.find(ids) end + def keys + [:_id] + end + def count(options = {}) model.count(options.reject{|key, value| [:sort, :sort_reverse].include?(key)}) end