Skip to content

Commit a227aa9

Browse files
author
profmaad
committed
Make activeadmin-mongoid play nice with ActiveRecord resources
1 parent 3e974fb commit a227aa9

File tree

1 file changed

+33
-15
lines changed

1 file changed

+33
-15
lines changed

lib/active_admin/mongoid/resource.rb

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,52 @@
33

44
ActiveAdmin::Resource # autoload
55
class ActiveAdmin::Resource
6-
def resource_table_name
7-
resource_class.collection_name
6+
original_resource_table_name = instance_method(:resource_table_name)
7+
8+
define_method(:resource_table_name) do
9+
if(resource_class.included_modules.include? Mongoid::Document)
10+
return resource_class.collection_name
11+
else
12+
return original_resource_table_name.bind(self).()
13+
end
814
end
915
end
1016

1117
ActiveAdmin::ResourceController # autoload
1218
class ActiveAdmin::ResourceController
13-
before_filter :skip_sidebar!
19+
# before_filter :skip_sidebar!
1420

1521
protected
1622

17-
def skip_sidebar!
18-
@skip_sidebar = true
19-
end
23+
# def skip_sidebar!
24+
# @skip_sidebar = true
25+
# end
26+
27+
original_sort_order = instance_method(:sort_order)
2028

2129
# Use #desc and #asc for sorting.
22-
def sort_order(chain)
23-
params[:order] ||= active_admin_config.sort_order
24-
table_name = active_admin_config.resource_table_name
25-
if params[:order] && params[:order] =~ /^([\w\_\.]+)_(desc|asc)$/
26-
chain.send($2, $1)
30+
define_method(:sort_order) do |chain|
31+
if(chain.included_modules.include? Mongoid::Document)
32+
params[:order] ||= active_admin_config.sort_order
33+
table_name = active_admin_config.resource_table_name
34+
if params[:order] && params[:order] =~ /^([\w\_\.]+)_(desc|asc)$/
35+
chain.send($2, $1)
36+
else
37+
chain # just return the chain
38+
end
2739
else
28-
chain # just return the chain
29-
end
40+
original_sort_order.bind(self).(chain)
41+
end
3042
end
3143

44+
original_search = instance_method(:search)
45+
3246
# Disable filters
33-
def search(chain)
34-
chain
47+
define_method(:search) do |chain|
48+
if(chain.included_modules.include? Mongoid::Document)
49+
chain
50+
else
51+
original_search.bind(self).(chain)
52+
end
3553
end
3654
end

0 commit comments

Comments
 (0)