В моем приложении rails у меня есть следующий URL-адрес, который я пытаюсь проверить.
"/team/17682/csrs/102094/verification_check?dcv_protocol=https&selected_csr=102094&choose_cn=138012"
В моем приложении rails, пройдя рабочий процесс приложения, журналы показывают, что этот URL-адрес обрабатывается как JSON.
В одном из моих файлов js код, который отправляет этот запрос, выглядит следующим образом:
$.ajax({url: '<%=verification_check_csr_path(@ssl_slug, @csr.id)%>?dcv_protocol=cname&selected_csr='+
$('#selected_csr').val()+'&choose_cn='+$(dcv_select).parents('tr').find('input[id*=d_name_id]').val()}).done()
Единственное, что касается этого вызова ajax, - это просто проиллюстрировать тот факт, что файл js вызывает ajax, а передаваемые параметры являются производными html элементов.
Теперь в моем файле rspe c spe c я получаю сообщение об ошибке при запуске этого запроса на получение, и я не могу понять, почему. Вот несколько реализаций, которые я пробовал в моем файле spe c с ошибкой, которая сопровождает его.
Вот параметры, которые я передаю. Они соответствуют тому, что должно быть передано.
params = {
dcv_protocol: 'http',
choose_cn: 1234,
selected_csr: 5678
}
# Attempt 1 #
get verification_check_csr_url(ssl_account.ssl_slug, csr.id, params)
*** AbstractController::ActionNotFound Exception: The action 'http://test.host/team/team-vvujoqqyde/csrs/1003/verification_check?choose_cn=1001&dcv_protocol=http&selected_csr=1003' could not be for CsrsController
# Attempt 2 #
get verification_check_csr_url(ssl_account.ssl_slug, csr.id, params), xhr: true
Same Error as Attempt 1: xhr: true did not do anything
# Attempt 3 #
get "#{verification_check_csr_path(ssl_account.ssl_slug, csr.id)}?dcv_protocol=http&selected_csr=#{csr.id}&choose_cn=#{domain.id}"
*** AbstractController::ActionNotFound Exception: The action '/team/team-vvujoqqyde/csrs/1003/verification_check?dcv_protocol=http&selected_csr=1003&choose_cn=1001' could not be found for CsrsController
# Attempt 4 #
get "#{verification_check_csr_path(ssl_account.ssl_slug, csr.id)}?dcv_protocol=http&selected_csr=#{csr.id}&choose_cn=#{domain.id}", xhr: true
Same as Attempt #3
# Attempt 5 #
get :verification_check, team: ssl_account.ssl_slug, id: csr.id, params: params
This produces an error in the test spec but I can't walk through it with byebug
Я уверен, что правильно вызываю этот URL-адрес с этими попытками, но по какой-то причине действие не может быть найдено, и я не понимаю, почему.
rake routes показывают это:
verification_check_csr GET (/team/:ssl_slug)/csrs/:id/verification_check(.:format) csrs#verification_check
Наконец, когда я пытаюсь разместить этот rspe c matcher expect(response).to have_http_status(200)
, я получаю 404. Я что-то упускаю?