こんにちは私は誰かが私に以下のやり方をよりエレガントに表示できるかどうか疑問に思っていました。Railsレコードセットをループしながらnilオブジェクトをスキップする
ネストされた値が含まれている場合と含まれていない場合のレコードセットがあります。ヌルエラーでループしている間に情報を表示するのに苦労しています。
私は最初にチェックすることで問題を解決できることは分かっていますが、私が気づいていないクリーンな方法が必要かどうか疑問に思っています。
現在のコード:(子供が、または含まれていてもいなくてもよい)
@bookings.each do |booking|
<tr>
<td><%= booking.name %></td>
<td><%= booking.parent.name %></td>
<td><%= booking.child.name %></td>
</tr>
潜在的な問題を回避します。事前に
@bookings.each do |booking|
<tr>
<td><%= booking.name %></td>
<td><%= booking.parent.name %></td>
<% if !booking.child_id.nil? %>
<td><%= booking.child.name %></td>
<% end %>
</tr>
感謝。
最初の解決策では、 'child'オブジェクトが' booking'に対して存在しない場合はどうなりますか? – titan
@titan 'booking.child'は' nil'を返し、 'child'の' try'は 'nil'も返します。 – mudasobwa
ああそう!私の悪い、 'name'が' nil'で呼び出されたときにエラーが発生します。ありがとう。 – titan