Rails 3响应,路由约束和资源

时间:2011-03-11 04:53:37

标签: ruby-on-rails ruby-on-rails-3 resources routing mongoid

我正在构建一个版本化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 :(得分:0)

尝试使用以下内容:

respond_with [:v1, @events]