如果发生某些事件,我有一个需要退出的代码(死的 php 版本)
trace_controller.rb 中的片段
def show
rule=Rule.new
@order,@order_error=rule.get_order(@order_external_id)
@order_items, @order_items_error=rule.get_order_items(@order)
@order_item_units, @order_item_units_error=rule.get_order_item_units(@order_items)
@outbound_messages, @outbound_messages_error = rule.check_outbound_messages(@order_external_id)
@inbound_messages, @inbound_messages_error = rule.check_inbound_messages(@outbound_message)
......
在 show.html.erb
<% unless @order_error.blank? %>
<%= @order_error.html_safe %>
<% else %>
<%= render "trace/display_tabular_data", :data => @order %>
<% end %>
.....
.....
<% unless @order_items_error.blank? %>
<%= @order_items_error.html_safe %>
<% else %>
<% @order_items.each do |order_item| %>
<h5>Order Item</h5>
<%= render "trace/display_tabular_data", :data => order_item %>
<% end %>
<% end %>
......
我的大部分功能都取决于先前功能的结果。现在获取依赖于订单的 get_order_items 函数。如果订单不存在,则不需要计算 get_order 函数,因为它也不存在。此外,它会引发一个错误,因为它说当我对 get_order_item 中的订单执行操作时,我正在向它传递一个 NIL 对象。
此外,在 show.html.erb - @order_items 中,如果订单不存在,@order_items_error 甚至不应该存在。我只想渲染函数直到 order_error,然后停止。
现在,来自PHP背景,我忘记了rails没有死。那么有没有死亡的替代品?中止是不是。我需要它不光彩地退出。或者是我最好的使用条件的镜头,如果,除非等......但它会看起来很难看,因为页面将变得充满它们。你会怎么做?