redirect_to browse_path(asset.parent_id), notice: "successfully created file!", status: 201
201 - это статус, который вы должны установить, если вы создали ресурс. Не то время как выше метод работает для создания действия, спецификации для его действий больше не делает:Настройка кодов состояния http
subject { response }
describe '.create' do
context 'when orphan' do
before do
post :create, asset: { parent_id: nil, uploaded_file: file }
end
it { should have_http_status 201 }
it { should redirect_to '/' }
end
end
Ожидание состояния проходит, но redirect_to ожидание терпит неудачу:
Expected response to be a <redirect>, but was <201>
Я принимаю, что это уже не перенаправление 302, но оно все же перенаправляет пользователя на новый маршрут (который я хочу проверить). Redirect_to спецификации проходит, если я установить его в «неправильном» код 302, а не 201:
redirect_to browse_path(asset.parent_id), notice: "successfully created file!", status: 302
так я должен беспокоиться о настройке кодов состояния? Я признаю, что на самом деле я понятия не имею, как браузер использует их, и мои приложения функционируют так же хорошо, если я старательно устанавливаю их в своих действиях или нет (просто используйте 302 перенаправления и 200 успехов).
Если коды статуса важны, как мне получить мои вышеуказанные спецификации?
Я получаю 'неправильное количество аргументов (2 для 1)'? – Starkers