【问题标题】:Ruby haml dynamic table thruby haml 动态表
【发布时间】:2012-12-30 07:10:17
【问题描述】:

在我的 Rails 应用程序中,我需要从 csv 文件中读取一些数据,然后将其显示在视图中,但主要问题是它是每个文件中具有自己行数的表... 例如 a.csv 包括行 A、B、C、b.csv - A、B... 但是如何自动生成该数量? 例如:

%table.table.table-striped
  %tr
    %th
      id Заказа
    %th
      id клиента
    %th
      Общая сумма
    %th
      Статус
    %th
      Открыт
    %th
    %th
  -@orders.each do |o|
    %tr
      %td
        = o.id
      %td
        = o.user.email
      %td
        %b
          = o.totalcost
      %td
        %b
          = o.orderstatus.name
      %td
        = o.created_at
      %td
        = link_to "Подробнее", admin_order_path(o), :class => "btn btn-primary"
      %td
        = link_to "Редактирование", edit_admin_order_path(o), :class => "btn btn-warning"

这里我有 7 行...但是怎么做,比如:

%table.table.table-striped
  %tr
    %th.each
      = i + 1

所以在浏览器中我可以看到行标题 1、2、3 和它们的数据?

那么如何设置动态表头数量呢?

【问题讨论】:

    标签: ruby-on-rails haml


    【解决方案1】:

    我不完全确定我得到了你想要实现的目标,但只是动态生成你可以使用类似下面的东西。您可能希望将 4 替换为变量。

    %table.table.table-striped
      %thead
        %tr
          - 4.times do |num|
            %th= num+1
    

    【讨论】:

    • 主要问题是你的情况是 4,我不知道我将拥有什么:4 或 20...所以我只需要将 -4.times 替换为 -n.times
    • 嗯,您可能使用标准库 CSV,对吧?如果您执行arr_of_arrs = CSV.read("./a.csv"),它会返回一个数组数组(行数组,每个数组都有列数组),那么您可以通过arr_of_arrs.first.length 获得n
    • 好的,如果数组使用每个数组,如何显示数组? (数量与tad tr's中的相同) - ooloollo.each do |o| - o.each 做|k| = k[:num+1] 像这样?
    猜你喜欢
    • 1970-01-01
    • 2013-09-07
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多