Rails ActionView::MissingTemplate как исправить ошибку?

Здравствуйте
Периодически в проекте возникает ошибка:
ActionView::MissingTemplate: Missing template mobile_synchronization/orders, application/orders with {:locale=>[:ru], :formats=>[:json], :handlers=>[:erb, :builder]}. Searched in:
* "/var/www/mss/releases/20140717080253/app/views"
* "/var/www/mss/shared/bundle/ruby/1.9.1/gems/twitter-bootstrap-rails-2.2.6/app/views"
* "/var/www/mss/shared/bundle/ruby/1.9.1/gems/devise-2.2.4/app/views"
* "/var/www/mss/shared/bundle/ruby/1.9.1/gems/kaminari-0.14.1/app/views"

Рельсы пытаются найти view файл для json-запроса, само собой файла нет, в контроллере просто в ответ на POST запрос
POST http://server.com/synchronization/orders.json
Отдает ответ:
respond_to do |format|
            if @order.save
              @responce = JSON code: 100, description: 'created successfully'
              format.json { render json: @responce, status: :created, location: @order }
            else
              @responce = JSON code: 200, description: 'the data format is not valid'
              format.json { render json: @responce, status: :unprocessable_entity }
            end
          end

Т.е. никакие view-файлы рендерится не должны, объясните мне почему сервер пытается их искать?
  • Вопрос задан
  • 3403 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Perzh
Я не знаток рельсов, но кажется по умолчанию для каждого контроллера должна быть вьюха. Может быть стоит создать пустую вьюху и отрендерить её с опцией layout: false # нивелируем добавление layout
Когда я отдавал html по ajax запросу я делал что то подобное, правда вьюха у меня была не пустая.
Ответ написан
@proffard
Проверьте такой случай:
возможно пользователи нажимают по ссылке server.com/synchronization/orders.json парвой кнопкой мыши и выбирают "открыть в новой вкладке"
Ответ написан
Комментировать
YourWest
@YourWest
Ruby Developer
Попробуйте в контроллере прописать данный код, что бы всегда форсить рендер JSON'a:
respond_to :json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы