Я разрабатываю приложение, которое отображает табличные данные во многих различных областях, и я постоянно и вновь использую одну и ту же структуру таблиц HTML. Например, конкретная таблица выглядит так:
%table.zebra-striped#user-table{ :cellspacing => "0" }
%colgroup
%col{:id => "email"}
%col{:id => "username"}
%col{:id => "sign-in-count"}
%col{:id => "last-sign-in-at"}
%thead
%tr
%th{:id => "email-head", :scope => "col"} E-mail
%th{:id => "username-head", :scope => "col"} Username
%th{:id => "sign-in-count-head", :scope => "col"} Sign Ins
%th{:id => "last-sign-in-at-head", :scope => "col"} Last Sign In
%tbody
- @users.each do |user|
%tr{ :class => zebra }
%td
=h user.email
%td
=h user.username
%td
=h user.sign_in_count
%td
=h user.last_sign_in_at
В идеале я хотел бы создать какой-нибудь вспомогательный метод, в котором я мог бы сделать что-то вроде:
= custom_table_for @users do
= column :email
= column :username do |user|
= link_to user.username, user_path(user)
= column "Sign Ins", :sign_in_count
= column :last_sign_in_at
Таким образом, я могу изменить форматирование данных в столбцах и имена заголовков столбцов, если меня не устраивают значения по умолчанию, но я создал таблицу для меня.
Полагаю, я мог бы создать нормального помощника, но мне пришлось бы использовать массивы, и я не представляю, как я могу включить пользовательское форматирование данных для каждого столбца.
active_admin имеет нечто похожее на это, что вы можете увидеть здесь: http://activeadmin.info/docs/3-index-pages/index-as-table.html
Любые предложения или идеи будут с благодарностью.