Rails 3 response_with, ограничения маршрута и ресурсы - PullRequest
1 голос
/ 11 марта 2011

Я создаю версионный 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, в частности с коллекциями и массивами. Я буду продолжать расследование.

1 Ответ

0 голосов
/ 11 марта 2011

Попробуйте использовать что-то вроде:

respond_with [:v1, @events]
...