如何在 Rails 局部视图中创建行空间?

Posted

技术标签:

【中文标题】如何在 Rails 局部视图中创建行空间?【英文标题】:How to create a line space in a Rails partial view? 【发布时间】:2014-06-27 09:02:06 【问题描述】:

在我的index.html.erb 视图中,我有以下render 来显示每个航班(不做.each

<%= render @flights %>

但是,由于我写了部分航班,所有航班都并排列出。我想要的是每条线路列出一个航班。如何在每次飞行后创建行空间?

<%= radio_button_tag :flight_id, flight.id %>
<%= flight.id %>
<%= flight.date.strftime("%B %d, %Y")  %>
<%= flight.date.strftime('%I:%M:%S %p') %>
<%= flight.from_airport.code %>
<%= flight.to_airport.code %>
<%= distance_of_time_in_words(flight.duration) %>

【问题讨论】:

你可以使用tables,但你必须通过each的记录来loop 【参考方案1】:

为什么不使用表格?

<table>
  <%= render @flights %>
</table>

在你的部分写作中

<tr>
  <td><%= radio_button_tag :flight_id, flight.id %></td>
  <td><%= flight.id %></td>
  <td><%= flight.date.strftime("%B %d, %Y")  %></td>
  <td><%= flight.date.strftime('%I:%M:%S %p') %></td>
  <td><%= flight.from_airport.code %></td>
  <td><%= flight.to_airport.code %></td>
  <td><%= distance_of_time_in_words(flight.duration) %></td>
</tr>

Arrgghhhh 打字太多,而且很容易出错。 出于教育目的,为什么不使用haml?

%table
  = render @flights

在你的部分:

%tr
  %td= radio_button_tag :flight_id, flight.id 
  %td= flight.id 
  %td= flight.date.strftime("%B %d, %Y")  
  %td= flight.date.strftime('%I:%M:%S %p') 
  %td= flight.from_airport.code 
  %td= flight.to_airport.code 
  %td= distance_of_time_in_words(flight.duration) 

【讨论】:

【参考方案2】:

尝试在部分末尾使用&lt;br/&gt; html 标记。

<%= radio_button_tag :flight_id, flight.id %>
<%= flight.id %>
<%= flight.date.strftime("%B %d, %Y")  %>
<%= flight.date.strftime('%I:%M:%S %p') %>
<%= flight.from_airport.code %>
<%= flight.to_airport.code %>
<%= distance_of_time_in_words(flight.duration) %>
<br/>

【讨论】:

以上是关于如何在 Rails 局部视图中创建行空间?的主要内容,如果未能解决你的问题,请参考以下文章

Flexbox - 如何在垂直方向上进行空间环绕?

Rails 视图规范:无法在命名空间视图中找到局部视图

如何使用 Rails 3 在同一视图中创建同一类的多个对象?

如何在rails中添加视图

如何将 Rails 视图助手提取到 gem 中?

如何在 Rails 视图中呈现所有评论?