我正在构建一个版本化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模型有关,特别是集合与数组。我会继续调查。
答案 0 :(得分:0)
尝试使用以下内容:
respond_with [:v1, @events]