Я создаю версионный API, поэтому у меня есть следующие вложенные контроллеры:
ApiController < ApplicationController
Api::V1Controller < ApiController
Api::V1::EventsController < Api::V1Controller
Доступ к API осуществляется через поддомен. У меня есть следующие маршруты:
constraints(:subdomain => "api") do
scope :module => 'api' do
namespace :v1 do
resources :events
end
end
end
Получает нужный мне тип URL (/v1/events).
Проблема, с которой я сталкиваюсь, заключается в использовании responds_with
в Api::V1::EventsController
. Просто выполнить что-то простое, как показано ниже, выдает ошибку too few arguments
:
def index
@events = Event.all
respond_with(@events)
end
Я знаю, respond_with
предназначено для использования с ресурсами, но я не уверен, как следует обращаться к ресурсу событий по маршруту с ограничениями, областями действия и пространством имен. Я могу выводить другие вещи (например, current_user), но не массив событий. Помощь
Обновление:
Вот что работает:
# a single resource
def index
@event = Event.all.first
respond_with @event
end
# an array of a completely different resource
def index
@user = User.all
respond_with @user
end
Так что, возможно, это как-то связано с моделью Event, в частности с коллекциями и массивами. Я буду продолжать расследование.