2010-06-15 9 views
0

Je travaille sur un contrôleur Rails 3 qui a un but très spécifique et limité, et tout ce dont j'ai besoin c'est de répondre à: json.Comment inclure Responder dans ActionController :: Metal dans Rails 3?

Ce screencast dit mon contrôleur peut hériter de ActionController :: métal, puis il suffit d'inclure la fonctionnalité que je dois faire les choses plus vite: http://rubyonrails.org/screencasts/rails3/action-controller

Lorsque mon contrôleur ressemble à ceci:

class FoldersController < ActionController::Metal 
    respond_to :json 
    def all 
    respond_with Folder.all 
    end 
end 

Je reçois l'erreur:

undefined method `respond_to' for FoldersController:Class 

J'ai essayé y compris Responder, ActionController :: Responder, Act ionController :: Metal :: Responder, mais aucun d'entre eux ne fonctionne. Que dois-je inclure pour obtenir cette fonctionnalité de répondeur?

Répondre

1

Vous devez inclure plus de classes, pas seulement le répondeur. Voici mon ApplicationController, mais pas tous inclus vous pouvez avoir besoin:

class Api::ApplicationController < ActionController::Metal 
    include ActionController::Helpers 
    include ActionController::UrlFor 

    include ActionController::Redirecting 
    include ActionController::Rendering   # enables rendering 
    include ActionController::ConditionalGet  # required for respond_to and respond_with 
    include ActionController::MimeResponds  # enables serving different content types like :xml or :json 

    include ActionController::Cookies    # enables cookies 
    include AbstractController::Callbacks   # callbacks for your authentication logic 
    include ActiveSupport::Rescuable    # enables resque_from 

    include Rails.application.routes.url_helpers 
end