Просто уточнить: я новичок в Ruby and Rails.Получение «Ожидаемого ответа будет <:redirect>, но было <200>» при попытке пройти тест
Я судимый, чтобы решить мою проблему с sugestions в here, here и here, но они, похоже, не имеют прямое отношение с моей проблемой, или я слишком туп понимаем.
Я пытаюсь проверить сценарий, в котором я не обновляю объект, и я хочу, чтобы мое приложение перенаправлялось. Я не уверен, что мой код контроллера прав, я думаю, что, вероятно, я не рассматриваю этот сценарий. Вот мой тестовый код:
test "should not update status if nothing has changed" do
sign_in users(:rodrigo)
put :update, id: @status
assert_redirected_to status_path(assigns(:status))
assert_equal assigns(:status).user_id, users(:rodrigo).id
end
, и мой контроллер код обновления:
def update
@status = current_user.statuses.find(params[:id])
@document = @status.document
if params[:status] && params[:status].has_key?(:user_id)
params[:status].delete(:user_id)
end
respond_to do |format|
if @status.update_attributes(params[:status]) &&
@document && @document.update_attributes(params[:status][:document_attributes])
format.html { redirect_to @status, notice: 'Status was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
Я уже пытался, если @status.changed?
проверить, и это на самом деле не было. У меня здесь нет вариантов. Если кто-то хочет помочь и нуждается в дополнительной информации, я могу это предоставить.