我有一个服务于我的主页的操作。正常访问时(即用户在网络浏览器中),它工作正常,但是当特定网络爬虫访问时,它会抛出以下错误:
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
并在其中放入一些乱码的唯一方法吗?或者我可以更优雅地解决这个问题吗?