我有一个用于提供首页的操作。当普通用户在web浏览器中访问时,它可以正常工作,但是当特定的网络爬虫访问时,它会抛出以下错误:
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'
看起来机器人正试图获取text/*
格式,但是没有相应的模板,这很合理,因此我尝试在我的操作中执行以下操作:
def promoted
request.format = :html #force html to avoid causing missing template errors
# more action stuff....
end
本质上,我正在尝试强制请求的格式为HTML,以便它提供HTML模板。
然而每次这些机器人请求此页面时,都会出现缺少模板错误。
这不是什么大问题,但理想情况下,我想解决这个错误,即使只是为了停止从我的应用程序接收这些错误电子邮件。
是否唯一的方法是创建一个名为my_action.text.erb
的文件并在其中放一些无意义的内容?还是我可以更优雅地解决这个问题?