diff --git a/lib/administrate/resource_resolver.rb b/lib/administrate/resource_resolver.rb index 9e3a3001a7..a3a24a7320 100644 --- a/lib/administrate/resource_resolver.rb +++ b/lib/administrate/resource_resolver.rb @@ -35,7 +35,8 @@ def model_path_parts end def controller_path_parts - controller_path.split("/")[1..-1].map(&:singularize) + path_parts = controller_path.split("/")[1..-1] + path_parts << path_parts.pop.singularize end attr_reader :controller_path diff --git a/spec/lib/administrate/resource_resolver_spec.rb b/spec/lib/administrate/resource_resolver_spec.rb index 26badacab8..273fbe802f 100644 --- a/spec/lib/administrate/resource_resolver_spec.rb +++ b/spec/lib/administrate/resource_resolver_spec.rb @@ -23,6 +23,17 @@ module Library; class BookDashboard; end; end remove_constants :Library end end + + it "handles plural namespaced models" do + begin + module Libraries; class BookDashboard; end; end + resolver = Administrate::ResourceResolver.new("admin/libraries/books") + + expect(resolver.dashboard_class).to eq(Libraries::BookDashboard) + ensure + remove_constants :Libraries + end + end end describe "#namespace" do