這就是透過 render partial 技巧以及Ruby語法把View Table整合起來,
就可以通用任何不同的Models資料,作為有彈性的Views Table管理。
基礎原理
<% cols.each do |col| %>
>
<%= col[:t] %>
<% end %>
<% resources.each do |resource| %>
<% cols.each do |col| %>
<%= col[:v].call(resource) %>
<% end %>
<% end %>
<%= render partial: "admin/datas/index_table", locals: {
id: "datas",
resources: @datas,
cols: [
{t: "ID", v: proc {|obj| obj.id }},
{t: "Name", v: proc {|obj| obj.name}},
],
title: "列表",
pagination: true
} %>