С такими действиями, как :show
и :edit
, я могу просто http GET их. Но так как у действия :update
нет шаблона, я не могу выдать GET без жалобы на отсутствующий шаблон. Это имеет смысл, поэтому я попытался напрямую вызвать @controller.update
в моем тесте, но я получил ошибку в блоке respond_to
:
NoMethodError: undefined method `parameters' for nil:NilClass
Как мне указать запрашиваемый формат :html
? Я передаю хэш параметра для атрибутов модели, FWIW. Спасибо за любой совет.
Edit:
С тех пор я попытался вызвать @ controller.update (после установки params []) в консоли, и та ошибка, процитированная выше, всплыла отсюда: /actionpack-2.3.8/lib/action_controller/mime_responds.rb
Я также попробовал PUT вместо GET, но все еще получил "Missing Template update.erb".
Кроме того, мне удалось выяснить, что эта ошибка отсутствующего шаблона вызвана наличием чего-либо кроме перенаправления или визуализации в блоке кода, помеченном ЗДЕСЬ:
respond_to do |format|
if @model.update_attributes(params[:model])
flash[:notice] = 'note!'
format.html { **HERE** }
...
У меня есть вызов метода, который является условным для перенаправления в нужное место. Я могу, в принципе, понять, почему он может искать шаблон для рендеринга, поскольку он может не знать, что есть перенаправление дальше вниз по течению, но я не понимаю, почему мое веб-приложение не работает на том же уровне. ошибка как мой функциональный тест.