我需要在表中显示多维数组数据,如下所示:
对于sla.expected_billing,有一个网格,左侧有12个句点(行)
顶部(列)的7个分类帐号
适用字段中的金额,但可能有空值
例如,
期间1:Ledger 1 = 400.00,Ledger 2 = null,Ledger 3 = 250.55,Ledger 4 = 500等。
期间2:Ledger 1 = null,Ledger 2 = null等等......
class ExpectedBilling < ActiveRecord::Base
belongs_to :sla
belongs_to :period
belongs_to :ledger
end
class Period < ActiveRecord::Base
has_many :expected_billings
end
class Ledger < ActiveRecord::Base
has_many :expected_billings
end
class Sla < ActiveRecord::Base
has_many :expected_billings
end
我认为Matrix库和/或Class.transpose可能是我需要的,但我不确定。当任何给定数组中可能存在空值时,我担心它也不会正确填充网格。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
我会稍微改变它的模型:
class Sla < ActiveRecord::Base
has_one :expected_billing
end
class ExpectedBilling < ActiveRecord::Base
has_many :periods
belongs_to :sla
end
class Period < ActiveRecord::Base
has_many :ledgers
belongs_to :expected_billing
end
class Ledger < ActiveRecord::Base
belongs_to :period
end
要在视图中打印您的表格:
<table>
<!-- insert header row here -->
<% sla.expected_billing.periods.each do |period| %>
<tr>
<!-- insert header column here -->
<% period.ledgers.each do |ledger| %>
<td><%= ledger.value %></td>
<% end %>
</tr>
<% end %>
</table>