作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个 ERB 模板,它有一些来自其他 gem 的辅助方法
sample.html.erb
<h1>All The Stuff</h1>
<% all_the_stuff.each do |stuff| %>
<div><%= stuff %></div>
<% end %>
lib/random_file.rb
def all_the_stuff
if ALL_THE_STUFF.exists?
ALL_THE_STUFF
else
fail AllTheStuffException
end
end
现在,如果 ALL_THE_STUFF
不存在,我将得到一个 ActionView::Template::Error
。但是,这不会被捕获为 Controller 级别的异常处理。对于 Controller ,我使用 rescue_from
拯救 ApplicationController
中的异常。我所有的 ERB 模板都可以放在一个地方吗?
如何处理模板中捕获的异常(不是由于 Controller 代码)?
最佳答案
我认为更好的解决方案如下:
class ThingsController < ApplicationController
def sample
@things = Thing.all
end
end
# views/things/sample.html.erb
<h1>All The Things</h1>
<% if @things.present? %>
<% @things.each do |thing| %>
<div><%= thing %></div>
<% end %>
<% else %>
There are no things at the moment.
<% end %>
这是 Rails 的方式,避免使用任何 Exception
类作为控制流,这通常是个坏主意。
关于ruby-on-rails - 如何从 Rails 模板(ERB 文件)中的错误中拯救出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707312/
我是一名优秀的程序员,十分优秀!