Как установить тип содержимого в запросе ActionController :: TestCase - PullRequest
5 голосов
/ 28 марта 2011

Я пытался выполнить getCase в моем TestCase следующим образом:

request.env['CONTENT_TYPE'] = 'application/json'
get :index,:application_name=>"Heka"

Хотя, это не удается с:

ActionView::MissingTemplate: Missing template alarm_events/index with {:handlers=>[:builder, :haml, :erb, :rjs, :rhtml, :rxml], :locale=>[:en, :en], :formats=>[:html]

Несмотря на то, что в моем контроллере у меня есть:

respond_to :html, :json

def index
    @alarm_events=[...]

    respond_with @alarm_events do |format|
      format.json{
        render :json=>@alarm_events.map{|e| e.to_portal_representation}.to_json, 
               :content_type=>'application/json'
      }
    end
  end

Как, черт возьми, я должен написать предполагаемый запрос на TestCase?

Когда я запрашиваю alarm_events.json в браузере, он работает нормально.

Спасибо

Ответы [ 3 ]

8 голосов
/ 16 августа 2011

Я должен был указать формат в параметрах для тестирования контроллера действий:

get :index, {format: :json}
6 голосов
/ 28 марта 2011
@request.accept = 'application/json'
2 голосов
/ 28 марта 2011

Я бы предложил установить заголовок внутри формата. Json

def index
    @alarm_events=[...]

    respond_with @alarm_events do |format|
      format.json{
        render :json => @alarm_events.map{|e| e.to_portal_representation}.to_json, :content_type => 'application/json'
      }
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...