Создание API для моего первого проекта Rails. У меня есть базовый класс ApiController для всех API:
module Api
class ApiController < ::ApplicationController
respond_to :json
skip_before_action :verify_authenticity_token
def index
@collection = resource_class.all
render json: @collection.as_json(as_json_collection)
end
private
def resource_class
raise NotImplementedError
end
def as_json_collection
{}
end
end
end
И у меня есть дочерний класс UsersController:
module Api
class UsersController < ApiController
private
def resource_class
User
end
def resource_params
params.require(:user).permit(:name, :email)
end
end
end
Мои маршруты:
namespace :api do
resources :users
end
Тогда я ' я иду к my_app / api / users У меня ошибка:
Не удалось найти действие 'index' для Api :: UsersController
Но затем я изменил запись UsersController это собственный индексный класс, все работает нормально, и у меня все пользователи в формате JSON. Я попытался прокомментировать все частные оценки в обоих классах, но это не помогает. Я не хочу писать API для каждой сущности в моем проекте, и я хотел бы избежать этой проблемы в будущем.