Это можно сделать помощником, используя block / yield, но это выходит за рамки вашего вопроса. Я получу право на вопрос, сделав это в частичном.
<% room.attributes.each do |key, value| %>
<% if key.to_s.include?("day") %>
<td class="<%=current_cycle%>"><%=h value.to_s %></td>
<% end %>
<% end %>
Обновление:
Вот пример помощника. Если этот шаблон появляется в вашем приложении более одного раза, я думаю, что он более удобен в обслуживании и читабелен.
def attributes_for(model, match, &block)
model.attributes.each do |key, value|
if key.to_s.include?(match)
# we pass key and value in this example. but you can
# pass whatever you want to the block.
concat(capture(key, value, &block))
end
end
end
А теперь это ваш частичный:
<% attributes_for(room, "day") do |key, value| %>
<td class="<%=current_cycle%>"><%=h value.to_s %></td>
<% end %>
Больше всего строк кода, но лучше, если вы собираетесь делать это во всем приложении.