0

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?

1
  • @dbugger I added the logs Commented Feb 28, 2022 at 2:16

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.