Home > Blockchain >  Rails Routes homepage setting throws "Controller#index is missing a template for request format
Rails Routes homepage setting throws "Controller#index is missing a template for request format

Time:02-28

I have a simple Ruby on Rails repo, and I found that if I specified the homepage as index in Roues, it would throw a "" error. I can't find any spelling mistakes:

This is Route

Rails.application.routes.draw do
  resources :foos

  root "foos#index"
end

This is the part of the Controller

class FoosController < ApplicationController
  before_action :find_foo, only: [:edit, :update, :destroy]

  def index
    @foos = Foo.all
  end

My View file is app/views/index.html.erb

This is logs:

ActionController::MissingExactTemplate (FoosController#index is missing a template for request formats: text/html):

actionpack (7.0.2.2) lib/action_controller/metal/implicit_render.rb:45:in default_render' actionpack (7.0.2.2) lib/action_controller/metal/basic_implicit_render.rb:6:in block in send_action' actionpack (7.0.2.2) lib/action_controller/metal/basic_implicit_render.rb:6:in tap' actionpack (7.0.2.2) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action' actionpack (7.0.2.2) lib/abstract_controller/base.rb:214:in process_action' actionpack (7.0.2.2) lib/action_controller/metal/rendering.rb:53:in process_action' actionpack (7.0.2.2) lib/abstract_controller/callbacks.rb:234:in block in process_action' activesupport (7.0.2.2) lib/active_support/callbacks.rb:118:in block in run_callbacks' actiontext (7.0.2.2) lib/action_text/rendering.rb:20:in with_renderer' actiontext (7.0.2.2) lib/action_text/engine.rb:69:in block (4 levels) in class:Engine' activesupport (7.0.2.2) lib/active_support/callbacks.rb:127:in instance_exec' activesupport (7.0.2.2) lib/active_support/callbacks.rb:127:in block in run_callbacks' activesupport (7.0.2.2) lib/active_support/callbacks.rb:138:in run_callbacks' actionpack (7.0.2.2) lib/abstract_controller/callbacks.rb:233:in process_action' actionpack (7.0.2.2) lib/action_controller/metal/rescue.rb:22:in process_action' actionpack (7.0.2.2) lib/action_controller/metal/instrumentation.rb:67:in block in process_action' activesupport (7.0.2.2) lib/active_support/notifications.rb:206:in block in instrument' activesupport (7.0.2.2) lib/active_support/notifications/instrumenter.rb:24:in instrument' activesupport (7.0.2.2) lib/active_support/notifications.rb:206:in instrument' actionpack (7.0.2.2) lib/action_controller/metal/instrumentation.rb:66:in process_action' actionpack (7.0.2.2) lib/action_controller/metal/params_wrapper.rb:259:in process_action' activerecord (7.0.2.2) lib/active_record/railties/controller_runtime.rb:27:in process_action' actionpack (7.0.2.2) lib/abstract_controller/base.rb:151:in process' actionview (7.0.2.2) lib/action_view/rendering.rb:39:in process' actionpack (7.0.2.2) lib/action_controller/metal.rb:188:in dispatch' actionpack (7.0.2.2) lib/action_controller/metal.rb:251:in dispatch' actionpack (7.0.2.2) lib/action_dispatch/routing/route_set.rb:49:in dispatch' actionpack (7.0.2.2) lib/action_dispatch/routing/route_set.rb:32:in serve' actionpack (7.0.2.2) lib/action_dispatch/journey/router.rb:50:in block in serve' actionpack (7.0.2.2) lib/action_dispatch/journey/router.rb:32:in each' actionpack (7.0.2.2) lib/action_dispatch/journey/router.rb:32:in serve' actionpack (7.0.2.2) lib/action_dispatch/routing/route_set.rb:850:in call' rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in call' rack (2.2.3) lib/rack/etag.rb:27:in call' rack (2.2.3) lib/rack/conditional_get.rb:27:in call' rack (2.2.3) lib/rack/head.rb:12:in call' actionpack (7.0.2.2) lib/action_dispatch/http/permissions_policy.rb:22:in call' actionpack (7.0.2.2) lib/action_dispatch/http/content_security_policy.rb:18:in call' rack (2.2.3) lib/rack/session/abstract/id.rb:266:in context' rack (2.2.3) lib/rack/session/abstract/id.rb:260:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/cookies.rb:693:in call' activerecord (7.0.2.2) lib/active_record/migration.rb:603:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/callbacks.rb:27:in block in call' activesupport (7.0.2.2) lib/active_support/callbacks.rb:99:in run_callbacks' actionpack (7.0.2.2) lib/action_dispatch/middleware/callbacks.rb:26:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/executor.rb:14:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:28:in call' web-console (4.2.0) lib/web_console/middleware.rb:132:in call_app' web-console (4.2.0) lib/web_console/middleware.rb:28:in block in call' web-console (4.2.0) lib/web_console/middleware.rb:17:in catch' web-console (4.2.0) lib/web_console/middleware.rb:17:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/show_exceptions.rb:26:in call' railties (7.0.2.2) lib/rails/rack/logger.rb:36:in call_app' railties (7.0.2.2) lib/rails/rack/logger.rb:25:in block in call' activesupport (7.0.2.2) lib/active_support/tagged_logging.rb:99:in block in tagged' activesupport (7.0.2.2) lib/active_support/tagged_logging.rb:37:in tagged' activesupport (7.0.2.2) lib/active_support/tagged_logging.rb:99:in tagged' railties (7.0.2.2) lib/rails/rack/logger.rb:25:in call' sprockets-rails (3.4.2) lib/sprockets/rails/quiet_assets.rb:13:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/remote_ip.rb:93:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/request_id.rb:26:in call' rack (2.2.3) lib/rack/method_override.rb:24:in call' rack (2.2.3) lib/rack/runtime.rb:22:in call' activesupport (7.0.2.2) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/server_timing.rb:20:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/executor.rb:14:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/static.rb:23:in call' rack (2.2.3) lib/rack/sendfile.rb:110:in call' actionpack (7.0.2.2) lib/action_dispatch/middleware/host_authorization.rb:137:in call' railties (7.0.2.2) lib/rails/engine.rb:530:in call' puma (5.6.2) lib/puma/configuration.rb:252:in call' puma (5.6.2) lib/puma/request.rb:77:in block in handle_request' puma (5.6.2) lib/puma/thread_pool.rb:340:in with_force_shutdown' puma (5.6.2) lib/puma/request.rb:76:in handle_request' puma (5.6.2) lib/puma/server.rb:441:in process_client' puma (5.6.2) lib/puma/thread_pool.rb:147:in `block in spawn_thread'

What am I missing?

CodePudding user response:

My View file is app/views/index.html.erb

This is the issue. Your view file should be present at app/views/foos/index.html.erb

Rails will automatically render a view that matches the name of the controller and action. Convention Over Configuration! Views are located in the app/views directory. So the index action will render app/views/foos/index.html.erb by default.

You can read more on this official Rails page.

  • Related