Как включить Responder в ActionController :: Metal в Rails 3? - PullRequest
0 голосов
/ 16 июня 2010

Я работаю с контроллером Rails 3, который имеет очень конкретное, ограниченное назначение, и все, что мне нужно, - это чтобы он ответил response_to: json.

В этом скриншоте говорится, что мой контроллер может наследовать от ActionController :: Metal, а затем просто включить функциональность, необходимую для ускорения работы: http://rubyonrails.org/screencasts/rails3/action-controller

Когда мой контроллер выглядит так:

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

Я получаю сообщение об ошибке:

undefined method `respond_to' for FoldersController:Class

Я пытался включить Responder, ActionController :: Responder, ActionController :: Metal :: Responder, но ни один из них не работает.Что я включаю, чтобы получить эту функцию ответчика?

Ответы [ 2 ]

1 голос
/ 25 апреля 2013

Вам нужно включить больше классов, а не только ответчика. Вот мой ApplicationController, но не все из них могут вам понадобиться:

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
0 голосов
/ 16 июня 2010

ActionController :: MimeResponds выглядит как путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...