द्वारा एकाधिक सरणी लूपिंग मैं कई सरणियों देख रहा हूँ, लेकिन उन्हें वर्ष के आधार पर किसी तालिका में संरेखित साथ परेशानी हो रही। फिलहाल डेटा इसी वर्ष के साथ नहीं मिलाया गया है, डेटा किसी भी वर्ष में मौजूद रहने पर यह सिर्फ पहली पंक्ति पर डेटा देता है, तो स्थानों '0' आराम के लिए डेटा, यानी। वर्ष के साथ संरेखित नहीं है।साल
देखें
<table>
<% @a.zip(@b, @c, @d) do |a, b, c, d| %>
<tr>
<td><%= a.year %></td>
<% if a.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= a.id %></td>
<td><%= a.data %></td>
<% end %>
<% if b.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= b.id %></td>
<td><%= b.data %></td>
<% end %>
<% if c.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= c.id %></td>
<td><%= c.data %></td>
<% end %>
<% if d.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= d.id %></td>
<td><%= d.data %></td>
<% end %>
</tr>
</table>
नियंत्रक
@a = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').order('year ASC')
@b = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '0').order('year ASC')
@c = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '1').order('year ASC')
@d = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '2').order('year ASC')
कृपया अपनी मेज और आउटपुट स्वरूप आप चाहते हैं में डेटा स्वरूप का उल्लेख है। – seahawk
मैं कुछ परेशानियों हो रही क्या सवाल करना चाहता है, तो आप नीचे डेटा से अपने आप को स्पष्ट रूप से ** नहीं प्रश्नों ** और प्रारूप आप पाठ में लिख सकता है। –
@ डोलरचिल, मैंने नीचे आपकी समस्या का समाधान प्रस्तावित किया है। मुझे उम्मीद है कि मैं इसे सही समझूंगा। अगर यह आपकी जरूरतों के अनुरूप है तो मुझे बताएं। (: साल और) ' – dimakura