特定のイベントが発生した場合に終了する必要があるコード(phpバージョンのdie)があります
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のバックグラウンドから来て、私はレールに死がないことを忘れました。それで、ダイの代替品はありますか?中絶ではありません。恥ずかしそうに終了する必要があります。または、条件文を使用した場合のベストショットです。ただし、ページが条件文でいっぱいになるため、見栄えが悪くなります。どうですか?