ActionView :: MissingTemplate: отсутствует шаблон - PullRequest
5 голосов
/ 05 марта 2012

Я получаю это сообщение об ошибке, когда робот Google пытается посетить один из моих контроллеров.

ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views"

Проблема в том, что я не могу воспроизвести это. Ошибка произошла 121 раз за последнюю неделю (согласно airbrake ).

Здесь - обратный след.

Строка 18, единственная упомянутая строка, которая существует в моем приложении, является super частью этого кода

def render(options = {}, extra_options = {}, &block)
  if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax] 
    options[:layout] = false
  end
  super(options, extra_options, &block)
end

Метод контроллера channels#show выглядит следующим образом

def show
  @channel   = # ...
  @today     = # ...
  @yesterday = # ...
  @tomorrow  = # ...
end

Посещение URL, который вызвал ошибку для бота Google, не вызывает ошибку для меня.

Единственные URL, которые терпят неудачу, это те, которые содержат специальный символ, такой как {"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"} Значение ORIGINAL_FULLPATH установлено на /channels/25-j%c3%b6nk%c3%b6ping.

Я использую рельсы 3.2.1.

Ответы [ 2 ]

3 голосов
/ 26 марта 2012

Это было недавно исправлено в master и перенесено в ветку 3.2: см. https://github.com/rails/rails/issues/736 для исходного отчета об ошибках, https://gist.github.com/1754727 для патчей обезьян и github.com/rails/rails/pull/ 4918 для принятого запроса извлечения.

2 голосов
/ 26 марта 2012

Я также видел эту ошибку в приложении на Rails 3 и был в той же лодке по поводу репликации ошибки.В журнале есть ошибка «Отсутствует шаблон», но когда я вручную пытаюсь выполнить запрос, он работает нормально.

Я подозреваю, что HTTP-запрос от Google не устанавливает mime, который Rails обрабатывает правильно.Грубое решение, которое я нашел, состоит в том, чтобы удалить mime шаблона представления, поэтому

example/index.html.erb

теперь

example/index.erb

Это останавливает ошибку отсутствия шаблона, так как шаблон будет использоваться для всех пантомим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...