diff --git a/lib/generators/administrate/routes/routes_generator.rb b/lib/generators/administrate/routes/routes_generator.rb index cf7b45e3aa..770ef1d1e4 100644 --- a/lib/generators/administrate/routes/routes_generator.rb +++ b/lib/generators/administrate/routes/routes_generator.rb @@ -63,7 +63,8 @@ def unnamed_constants end def dashboard_routes - ERB.new(File.read(routes_file_path)).result(binding) + erb = ERB.new(File.read(routes_file_path), nil, "-") + erb.result(binding) end def rails_routes_file_path diff --git a/lib/generators/administrate/routes/templates/routes.rb.erb b/lib/generators/administrate/routes/templates/routes.rb.erb index ce7efa4191..43c72c8830 100644 --- a/lib/generators/administrate/routes/templates/routes.rb.erb +++ b/lib/generators/administrate/routes/templates/routes.rb.erb @@ -1,5 +1,7 @@ namespace :admin do - <% dashboard_resources.each do |resource| %>resources :<%= resource %> -<% end %> +<% dashboard_resources.each do |resource| %> resources :<%= resource %> +<% end -%> +<% unless dashboard_resources.empty? -%> root to: "<%= dashboard_resources.first %>#index" +<% end -%> end diff --git a/spec/generators/routes_generator_spec.rb b/spec/generators/routes_generator_spec.rb index 3dd17f5770..6cc5cc8b2c 100644 --- a/spec/generators/routes_generator_spec.rb +++ b/spec/generators/routes_generator_spec.rb @@ -64,4 +64,14 @@ def self.table_name expect(routes).to contain('root to: "customers#index') end + + it "does not create a invalid root route when there's no model" do + allow(ActiveRecord::Base).to receive(:descendants).and_return([]) + stub_generator_dependencies + routes = file("config/routes.rb") + + run_generator + + expect(routes).not_to contain('root to: "#index"') + end end