Ошибка ActionView :: MissingTemplate, только при посещении ботом?

У меня есть действие, которое обслуживает мою домашнюю страницу. Он отлично работает при обычном посещении (например, пользователем в веб-браузере), но при посещении определенными поисковыми роботами выдает следующую ошибку:

 A ActionView::MissingTemplate occurred in tags#promoted:

 Missing template tags/promoted with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>["text/*"], :locale=>[:en, :en]} in view paths "/Apps/accounts/app/views", "/usr/local/rvm/gems/ruby-1.9.2-p180@accounts/gems/devise-1.3.0/app/views"
 actionpack (3.0.4) lib/action_view/paths.rb:15:in `find'

Похоже, боты пытаются получить текст / * , для которого нет шаблона, что имеет смысл, поэтому я попытался сделать следующее в моем действии:

  def promoted
   request.format = :html #force html to avoid causing missing template errors
   # more action stuff....
  end

По сути, я пытаюсь принудительно установить формат запроса на html, чтобы он обслуживал шаблон html.

Тем не менее, каждый раз, когда этот набор ботов запрашивает эту страницу, возникает ошибка отсутствующего шаблона.

Это не так уж и важно, но в идеале я бы хотел исправить эту ошибку, если только я перестану получать сообщения об ошибках от мое приложение.

Это единственный способ создать файл с именем my_action.text. erb и пустить туда тарабарщину? Или я могу решить это более элегантно?

15
задан Alex 10 May 2011 в 03:41
поделиться