У меня есть интеграционный тест, который отправляет простой GET-запрос в действие 'show'. Я получаю, когда я assert_response: success, он терпит неудачу, потому что ответ 406, что означает, что Неприемлемый HTTP .
--- "# [],
\ "Action_dispatch.request.parameters \" => {\ "Формат \" => \ "1 \",
\ "action \" => \ "index \", \ "controller \" => \ "docs \"},
\ "Rack.session \" => {\ "origin_url \" => \ "/ docs.1? = Формат HTML \",
\ "Session_id \" => \ "6e0e0be703a2c2accf15121b1eb56668 \"},
\ "Rack.test \" => правда,
\ "HTTP_ACCEPT \" => \ "текст / XML, приложения / XML, приложение / XHTML + XML, текст / HTML; д = 0,9, текст / обычный; д = 0,8, изображение / PNG, / ; д = 0,5 \»,
\ "HTTP_HOST \" => \ "www.example.com \",
\ "SERVER_NAME \" => \ "www.example.com \",
\ "Rack.request.cookie_hash \" => {\ "_ id_session \" => \ "BAh7ByIPb3JpZ2luX3VybCIGLyIPc2Vzc2lvbl9pZCIlNmUwZTBiZTcwM2EyYzJhY2NmMTUxMjFiMWViNTY2Njg = - ceb0f44d2ac8df81c888e005abb7e9d1df02e802 \"},
\ "action_dispatch.remote_ip \" => #, \ "CONTENT_LENGTH \" => \ "0 \",
\ "Rack.url_scheme \" => \ "HTTP \",
\ "Action_dispatch.request.query_parameters \" => {\ "Формат \" => \ "HTML \"},
\ "Action_dispatch.request.unsigned_session_cookie \" => {\ "origin_url \" => \ "/ \",
\ "Session_id \" => \ "6e0e0be703a2c2accf15121b1eb56668 \"},
\ "CONTENT_TYPE \" => \ "применение / х-WWW-форм-urlencoded \",
\ "HTTPS \" => \ "off \", \ "rack.errors \" => #,
\ "Action_dispatch.secret_token \" => \ "8922d5d0a3e706818581l8cc2d42d9ce584ba6350de71e6afc49b2ad7d3d05c6e763db2615fca9eb123c51b57223d955a5199b60c20e5efb4be14888a4e3520a2 \",
\ "REMOTE_ADDR \" => \ "127.0.0.1 \", \ "PATH_INFO \" => \ "/ docs.1 \",
\ "rack.version \" => [1, 1], \ "rack.run_once \" => false,
\ "Action_dispatch.request.path_parameters \" => {: Формат => \ "1 \",
: controller => \ "docs \",: action => \ "index \"},
\ "Rack.request.cookie_string \" => \ "_ id_session = BAh7ByIPb3JpZ2luX3VybCIGLyIPc2Vzc2lvbl9pZCIlNmUwZTBiZTcwM2EyYzJhY2NmMTUxMjFiMWViNTY2Njg% 3D - ceb0f44d2ac8df81c888e005abb7e9d1df02e802 \",
\ "SCRIPT_NAME \" => \ "\",
\ "action_dispatch.parameter_filter \" => [: пароль,: данные],
\ "action_dispatch.show_exceptions \" => ложный,
\ "HTTP_COOKIE \" => \ "_ id_session = BAh7ByIPb3JpZ2luX3VybCIGLyIPc2Vzc2lvbl9pZCIlNmUwZTBiZTcwM2EyYzJhY2NmMTUxMjFiMWViNTY2Njg% 3D - ceb0f44d2ac8df81c888e005abb7e9d1df02e802 \",
\ "Rack.multithread \" => правда,
\ "action_dispatch.request.request_parameters \" => {},
\ "Rack.request.form_vars \" => \ "\",
\ "Action_dispatch.cookies \" => {\ "_ id_session \" => \ "BAh7ByIPb3JpZ2luX3VybCIYL2RvY3MuMT9mb3JtYXQ9aHRtbCIPc2Vzc2lvbl9pZCIlNmUwZTBiZTcwM2EyYzJhY2NmMTUxMjFiMWViNTY2Njg = - 529dbf0f8e243c4830526f37adb777bd9fba49fd \"},
\ "REQUEST_URI \" => \ "/ docs.1 \", \ "rack.multiprocess \" => true,
\ "Rack.request.query_hash \" => {\ "Формат \" => \ "HTML \"},
\ "Rack.request.form_input \" => #,
\ "SERVER_PORT \" => \ "80 \",
\ "action_controller.instance \" => # \ "1 \", \ "action \" => \ "index \",
\ "controller \" => \ "docs \"}, @env = {...}>, @ cache_control = {}, @body = [\ "
\ "], @ status = 406, @ length = 0, @charset = \" utf-8 \ ",
@header = {\ "X-UA-Compatible \" => \ "IE = Край, хром = 1 \",
\ "X-Runtime \" => \ "0.013935 \", \ "Content-Type \" => \ "text / html;
кодировка = UTF-8 \»,
\ "\ Cookie Set-" => \ "_ id_session = BAh7ByIPb3JpZ2luX3VybCIYL2RvY3MuMT9mb3JtYXQ9aHRtbCIPc2Vzc2lvbl9pZCIlNmUwZTBiZTcwM2EyYzJhY2NmMTUxMjFiMWViNTY2Njg% 3D - 529dbf0f8e243c4830526f37adb777bd9fba49fd;
Путь = /; HttpOnly \ ", \" Cache-Control \ "=> \" no-cache \ "}, @ block = nil,
@ Писатель = #,
@ blank = true, @ send_file = false, @ etag = nil,
@ Content_type = #,
@cookie = []>, @_headers = {\ "Content-Type \" => \ "text / html \"}, @docs = [#, #, #, #, #, #], @ _config = # ,
@countries = [#, #, #],
@continents = [#, #], @_action_name = \ "index \",
@_request = # \ "1 \",
\ "action \" => \ "index \", \ "controller \" => \ "docs \"}, @env = {...}>,
@lookup_context = # => {\ "раскладок \" => {\ "нав \" => {истина => [приложение / просмотров / макеты / _nav.html.haml]},
\ "Приложения \" => {ложь => [приложение / просмотров / макеты / application.html.haml]},
\ "Docs \" => {ложь => []}},
\ "Docs \" => {\ "Индекс \" => {ложь => [приложение / просмотров / документы / index.html.haml]}}}},@path = \ "/ home / jon / id / app / views \">,
@ cached = {# => {\ "layouts \" => {\ "docs \" => {false=> []}}}}, @path = \ "/ home / jon / .rvm / gems / ruby-1.8.7-p334 / gems / devise-1.4.2 / app / views \">], @details_key= nil, @ skip_default_locale = false, @details = {: format => [: html,: text,: js,: css,: ics,: csv,: xml,: rss,: atom,: yaml,: multipart_form,: url_encoded_form,: json],: handlers => [: haml,: builder,: erb,: rjs,: rhtml,: rxml],: locale => [: en,: en]}, @ frozen_formats = false>,@doc_types = [#, #], @ _status = 200, @ view_context_class = nil, @ action_has_layout = true>, \ "rack.session.options \" => {: secure => false,: expire_after => nil,:domain => nil,: httponly => true,: id => \ "6e0e0be703a2c2accf15121b1eb56668 \",: path => \ "/ \"}, \ "REQUEST_METHOD \" => \ "GET \", \ "начальник \"=> Warden :: Proxy: -616946978 @config = {: default_scope =>: пользователь,: fail_app => Devise :: FailureApp,: intercept_401 => false,: default_strategies => {: user => [: запоминаемый,: database_authenticatableable]},: scope_defaults => {}}, \ "rack.request.query_string \" => \ "format = html \", \ "rack.request.form_hash \ "=> {}, \" action_dispatch.request.content_type \ "=> #, \" QUERY_STRING \ "=> \" format = html \ ", \" rack.input \ "=> #}>"
, тест 'go_to_home' работает, как и ожидалось.Использование страницы в среде разработки на моем компьютере также работает нормально.Вот вывод консоли сервера:
Запущен GET "/ docs / 1" для 127.0.0.1 в среду, 31 августа 05:19:20 +0200 2011 Обработка DocsController # показать как параметры HTML: {"id" => "1"}
Загрузка документа (1,0 мс) SELECT docs
. * ОТ docs
ГДЕ docs
. id
= 1 ПРЕДЕЛ 1 Пользовательская нагрузка (1,4 мс) SELECT users
. * ОТ users
ГДЕ users
. id
= 2 ПРЕДЕЛ 1 SQL (1,0 мс) ВЫБРАТЬ СЧЕТ (*) ОТ images
ГДЕ (images
.user_id = 2) КЭШ (0,0 мс) ВЫБРАТЬ СЧЕТ (*) ОТ images
ГДЕ (images
.user_id = 2) Загрузка изображения (1,9 мс) ВЫБРАТЬ images
. * ОТ images
ГДЕ (images
.user_id = 2) ЗАКАЗАТЬ updated_at DESC LIMIT 1 Распечатать Загрузить(0,9 мс) SELECT prints
. * ОТ prints
ГДЕ prints
. image_id
= 1 И prints
. doc_id
= 1 ОГРАНИЧЕНИЕ 1 Рендеринг макетов / _nav.html.haml (8,5 мс) Рендеринг документов/show.html.haml в макетах / приложении (172,7 мс) Выполнено 200 OK за 410 мс (просмотров: 225,0 мс | ActiveRecord: 6,2 мс)
Запущен GET "/javascripts/dynamic_docs.js" для 127.0.0.1в ср 31 авг 05:19:21 +0200 2011 Обработка JavascriptsController # dynamic_docs как JS Doc Load (16,1 мс) SELECT docs
. * FROM docs
Загрузка страны (0,7 мс) SELECT countries
. * FROM countries
WHERE countries
. id
= 1 LIMIT 1 CACHE(1,2 мс) ВЫБРАТЬ countries
. * ОТ countries
ГДЕ countries
. id
= 1 ПРЕДЕЛ 1 Страна нагрузки (0,6 мс) ВЫБРАТЬ countries
. * ОТ countries
ГДЕ countries
. id
= 2 ПРЕДЕЛ 1
Загрузка страны (0,6 мс) ВЫБРАТЬ countries
. * ОТ countries
ГДЕ countries
. id
= 8 ПРЕДЕЛ 1 Загрузка страны (0,6 мс) ВЫБРАТЬ countries
. * ОТ countries
WHERE countries
. id
= 18 LIMIT 1 Отображение javascripts / dynamic_docs.js.erb (216,0 мс) завершено 200 ОК за 270 мс (просмотров: 238,2 мс |ActiveRecord: 19,8 мс)
Запущен GET "/image_for/US-Passport/1.jpg" для 127.0.0.1 в среду, 31 августа 05:19:21 +0200 2011 "Паспорт США" 30,0 "head_top 39""X: 2.65000000000001, Y: 28,85, ширина: 222,7, высота: 222,7" Обработка DocsController # image_for как HTML
Параметры: {"image_id" => "1", "name" => "US-Passport"}Пользовательская нагрузка(2,0 мс) ВЫБРАТЬ users
. * ОТ users
ГДЕ users
. id
= 2 ПРЕДЕЛ 1 Загрузка изображения (0,9 мс) ВЫБРАТЬ images
. * ОТ images
ГДЕ images
. id
= 1 AND (images
.user_id = 2) ORDER BY updated_at DESC LIMIT 1 Загрузка документа (1,0 мс) SELECT docs
. * ОТ docs
ГДЕ docs
. name
= 'US Passport' LIMIT 1 Renderedтекстовый шаблон (0,1 мс) Отправленные данные orange.jpg (13,2 мс) Выполнено 200 OK за 371 мс (Просмотров: 12,9 мс | ActiveRecord: 3,9 мс)