модуль ActionDispatch::Integration::RequestHelpers
Публичные методы экземпляров
Выполняет запрос DELETE с указанными параметрами. Подробнее см. #get.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 55 def delete(path, parameters = nil, headers_or_env = nil) process :delete, path, parameters, headers_or_env end
Выполняет запрос DELETE, следуя за любыми последующими редиректами. Дополнительную информацию см. в request_via_redirect.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 124 def delete_via_redirect(path, parameters = nil, headers_or_env = nil) request_via_redirect(:delete, path, parameters, headers_or_env) end
Следует за одним редиректом. Если последний ответ не был редиректом, будет вызвано исключение. В противном случае редирект выполняется по заголовку location.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 82
def follow_redirect!
raise "not a redirect! #{status} #{status_message}" unless redirect?
get(response.location)
status
end Выполняет запрос GET с заданными параметрами.
-
path: URI (в виде строки), для которого выполняется запрос GET. -
parameters: HTTP-параметры для передачи. Это может бытьnil, хеш или строка с соответствующим кодированием (application/x-www-form-urlencodedилиmultipart/form-data). -
headers_or_env: Дополнительные заголовки для передачи в виде хеша. Заголовки будут объединены в хеш Rack env.
Этот метод возвращает объект Response, который позволяет просматривать детали ответа. Кроме того, если этот метод был вызван из объекта ActionDispatch::IntegrationTest, то переменная экземпляра объекта @response будет указывать на тот же объект ответа.
Вы также можете выполнять запросы POST, PATCH, PUT, DELETE и HEAD с помощью #post, #patch, #put, #delete, и #head.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 31 def get(path, parameters = nil, headers_or_env = nil) process :get, path, parameters, headers_or_env end
Выполняет запрос GET, следуя за любыми последующими редиректами. Дополнительную информацию см. в request_via_redirect.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 100 def get_via_redirect(path, parameters = nil, headers_or_env = nil) request_via_redirect(:get, path, parameters, headers_or_env) end
Выполняет запрос HEAD с заданными параметрами. Дополнительную информацию см. в #get.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 61 def head(path, parameters = nil, headers_or_env = nil) process :head, path, parameters, headers_or_env end
Выполняет запрос PATCH с заданными параметрами. Дополнительную информацию см. в #get.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 43 def patch(path, parameters = nil, headers_or_env = nil) process :patch, path, parameters, headers_or_env end
Выполняет запрос PATCH, следуя за любыми последующими редиректами. Дополнительную информацию см. в request_via_redirect.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 112 def patch_via_redirect(path, parameters = nil, headers_or_env = nil) request_via_redirect(:patch, path, parameters, headers_or_env) end
Выполняет запрос POST с заданными параметрами. Дополнительную информацию см. в #get.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 37 def post(path, parameters = nil, headers_or_env = nil) process :post, path, parameters, headers_or_env end
Выполняет запрос POST, следуя за любыми последующими редиректами. Дополнительную информацию см. в request_via_redirect.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 106 def post_via_redirect(path, parameters = nil, headers_or_env = nil) request_via_redirect(:post, path, parameters, headers_or_env) end
Выполняет запрос PUT с заданными параметрами. Дополнительную информацию см. в #get.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 49 def put(path, parameters = nil, headers_or_env = nil) process :put, path, parameters, headers_or_env end
Выполняет запрос PUT, следуя за любыми последующими редиректами. Дополнительную информацию см. в request_via_redirect.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 118 def put_via_redirect(path, parameters = nil, headers_or_env = nil) request_via_redirect(:put, path, parameters, headers_or_env) end
Выполняет запрос указанным методом, следуя за любыми последующими редиректами. Обратите внимание, что редиректы следуют до тех пор, пока ответ не является редиректом — это означает, что вы можете столкнуться с бесконечным циклом, если редирект возвращается к себе.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 92 def request_via_redirect(http_method, path, parameters = nil, headers_or_env = nil) process(http_method, path, parameters, headers_or_env) follow_redirect! while redirect? status end
Выполняет запрос XMLHttpRequest с заданными параметрами, имитируя запрос из библиотеки Prototype.
request_method — :get, :post, :patch, :put, :delete или :head; параметры — nil, хеш или закодированная по URL или multipart строка; заголовки — хеш.
# File actionpack/lib/action_dispatch/testing/integration.rb, line 71
def xml_http_request(request_method, path, parameters = nil, headers_or_env = nil)
headers_or_env ||= {}
headers_or_env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
headers_or_env['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
process(request_method, path, parameters, headers_or_env)
end
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.