相关疑难解决方法(0)

65
推荐指数
2
解决办法
5万
查看次数

为丢失的模板提供404而不是500错误

我有一个Rails 3.0应用程序(工作在3.2升级),每当有人请求一个不存在的模板时,它会在生产中产生500错误.例如,mysite.com/blog_posts/532将ID为532的帖子作为HTML发送回来没有问题,但如果由于某种原因请求mysite.com/blog_posts/532.txt,该应用程序会引发500 ActionView :: MissingTemplate错误.

这不应该发生,因为模板首先不应该存在.它应该更恰当地是404错误,或者只是显示HTML模板.

如何让应用程序显示所有缺失模板错误的404错误,或显示默认的HTML模板而不是500?

日志:

Started GET "/blog_posts/73.txt" for 127.0.0.1 at 2013-05-20 21:22:51 -0400
  Processing by BlogPostsController#show as TEXT
  Parameters: {"id"=>"73"}
  PK and serial sequence (2.0ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"blog_posts_blog_tags"'::regclass
  PK and custom sequence (1.0ms) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview

4
推荐指数
1
解决办法
1823
查看次数