Вы можете поместить результаты поиска Selection
в переменную и проверить это:
<% user_selections = Selection.where(:userid => current_user.id, :fixtureno => fixture.id) %>
<% if user_selections.empty? %>
<td>You have no selections for this match.</td>
<% else %>
<% user_selections.each do |selection| %>
<td width="10"><%= selection.winner %></td>
<td width="10"><%= selection.value %></td>
<% end %>
<% end %>
Я поставил <%
и %>
в каждой строке, потому что я думаю, что это понятнее. Вы можете просто использовать один для каждого блока кода, например:
<% else
user_selections.each do |selection| %>
Я не уверен, сколько пользовательских настроек у вас есть для конкретного прибора, но он найдет их все, поэтому, если есть нагрузки, вы получите их все, что приведет к низкой производительности и массивной строке в вашей таблице. Вы знаете свои данные лучше меня, хотя, может быть, есть ограничение на выбор пользователя.