名前、評価 1、評価 2、および評価 3 を含める必要がある html テーブルを作成しています。評価 1 ~ 3 は、名前とは異なるモデルからのものです。
resources :names do
resource :rat1,:rat2,:rat3
end
HTML テーブル内に、これらの各テーブル内からの評価を含めたいのですが、nil のテーブルを自動的にスキップまたは無視したいと考えています。これは、:names には :rat1 のみが含まれ、:rat2 または :rat3 が含まれない可能性があるためです。私のビューは次のようになります。
<table>
<thead>Name</thead>
<thead>Rating 1</thead>
<thead>Rating 2</thead>
<thead>Rating 3</thead>
<% @names.each do |name| %>
<tr>
<td><%= name.nametext %></td>
<td><%= name.rat1.rating %></td>
<td><%= name.rat2.rating %></td>
<td><%= name.rat3.rating %></td>
</tr>
<% end %>
</table>
ただし、name.rat1 が nil の場合は、a.) 値を N/A に置き換えるか、b.) このフィールドを空白のままにして次のフィールドに進みます。
これを行う最もクリーンな方法は何ですか?
::アップデート::
したがって、私の問題は、 name.rat1 が nil であり、 name.rat1.rating が nil クラスの未定義のメソッドであるため、これらのオプションの両方が || に関係なく、nil クラス エラーの同じ未定義メソッドをスローすることです。またはヘルパーメソッド。少なくともそれが私の現在のテストが示していることです。他のオプションはありますか?または別の回避策?すべてのrat1-3に対してこのような検証ループを配置する必要がないようにしたい
<% unless name.rat1.nil? %>
<%= name.rat1.rating %>
<% end %>
もっと簡単な方法が必要です。