Rails API
Since Rails 5.0, we've been able to have API only applications. Yet, sometimes we still want to have an admin.
To get this working, we recommend updating this config:
# config/application.rb
config.api_only = false
That means, when your app boots, we'll have access to flashes and such. We
also don't use your ApplicationController
. Instead, Administrate provides its
own. Meaning you're free to specify ActionController::API
as your parent
controller to make sure no flash, session, or cookie middleware is used by your
API.
Alternatively, if your application needs to have config.api_only = true
, we
recommend you add the following lines to your config/application.rb
# Enable Flash, Cookies, MethodOverride for Administrate Gem
config.middleware.use ActionDispatch::Flash
config.session_store :cookie_store
config.middleware.use ActionDispatch::Cookies
config.middleware.use ActionDispatch::Session::CookieStore, config.session_options
config.middleware.use ::Rack::MethodOverride
You must also ensure that all the required controller actions are available and accessible as routes since generators in API-only applications only generate some of the required actions. Here is an example:
# routes.rb
namespace :admin do
resources :name, only: %i(index show new create edit update destroy)
end
# names_controller.rb
# Ensure each of those methods are defined