我的表中有一个长列属性,它是一个令牌,我希望它显示在两行而不是一行,因为令牌占用了大量的表空间。
例如:“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
答案 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;
}
希望有所帮助