gpt4 book ai didi

ruby-on-rails - 如何从 Rails 模板(ERB 文件)中的错误中拯救出来

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:58 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com