次のObject.tryを使用してnilチェックを回避するにはどうすればよいですか?
<%= image_tag(PeriodState.where("sla_id = ?", sla.id).last.state.image_file) %>
さまざまな方法を試しましたが、それでもエラーが発生するため、構文がオフになっています。前もって感謝します!
次のObject.tryを使用してnilチェックを回避するにはどうすればよいですか?
<%= image_tag(PeriodState.where("sla_id = ?", sla.id).last.state.image_file) %>
さまざまな方法を試しましたが、それでもエラーが発生するため、構文がオフになっています。前もって感謝します!
try
結果image_tag
が常に呼び出されるものは何でも - したがって、nil で呼び出すことになるかもしれません。最初に画像が存在するかどうかを確認してから、この場合にのみ画像タグを作成する必要があります。したがって、コントローラーで PeriodState を取得しif
、ビューに単純なものを表示します。
# in controller
@period_state = PeriodState.where("sla_id = ?", sla.id).last
# in view
<%= image_tag(@period_state.state.image_file) if @period_state %>
もちろん、どちらかstate
またはimage_file
nilでもある場合、これは機能しません。