如何调整列的长表属性的大小

时间:2013-10-30 19:42:32

标签: ruby-on-rails resize ruby-on-rails-3.2 html-table

我的表中有一个长列属性,它是一个令牌,我希望它显示在两行而不是一行,因为令牌占用了大量的表空间。

例如:“44b4bf4c01261542c9e34701fe435e55

代码段:

<table class="table table-striped table-hover" id="admin_data_table">
  <thead>
    <tr>
    <th>request</th>
    </tr>
  </thead>
  <tbody> 
    <tr>
    <td><%= @request.token %></td>
    </tr>
  <tbody>
</table>

如何使这个长值44b4bf4c01261542c9e34701fe435e55更短,例如:

44b4bf4c012615
42c9e34701fe
435e55

3 个答案:

答案 0 :(得分:1)

您可以使用String的扫描方法将其分解为多个位,然后将其重新连接在一起。以下是将每行最多分为15个字符的示例。

> str = "44b4bf4c01261542c9e34701fe435e55"
 => "44b4bf4c01261542c9e34701fe435e55"
> puts str.scan(/.{0,15}/).join("\n")
44b4bf4c0126154
2c9e34701fe435e
55

答案 1 :(得分:1)

这是一个前端观点问题。您应该使用HTML或CSS来处理列的宽度,而不是转换数据本身。

您可以通过设置HTML宽度来实现,例如:

<table class="table table-striped table-hover" id="admin_data_table">
  <thead>
    <tr>
    <th width='10%'>request</th>
    </tr>
  </thead>
  <tbody> 
    <tr>
    <td width='10%'><%= @request.token %></td>
    </tr>
  <tbody>
</table>

您可以使用css:

admin_data_table .token-column { width: 10% }

或者,如果您仍然想要转换后端生成的数据,可以使用ruby将令牌字符串拆分为:

<%= @token.each_slice(10) # will produce an array of chunks of 10 characters %>

答案 2 :(得分:1)

我同意这是一个前端问题。你可以在你的css中试试这个

table td 
{
  table-layout:fixed;
  width:20%; 
  overflow:hidden;
  word-wrap:break-word;
}

希望有所帮助