我有pluck
和map
方法来解析一些数据:
<%= @driver.cars.pluck(:name, :purchase_date).map{ |c| c[0] + ' on ' + c[1].strftime('%d.%m.%Y') + ' at ' + c[1].strftime('%H:%M') }.to_sentence %>
如何仅为c[0]
中数据的名称部分更改颜色?
我试过了,但没用:
.map{ |c| <span style="color: blue;">c[0]</span> + ' on ' + c[1].strftime('%d.%m.%Y') + " at " + c[1].strftime('%H:%M') }
看起来你正试图在ERB视图中吐出代码——它们的工作方式与React不太一样(根据你的例子,我猜这可能是你熟悉的(:你想用each
而不是map
迭代一个集合——可能是这样的:
<% @driver.cars.pluck(:name, :purchase_date).each do |car| %>
<span style="color: blue;"><%= car[0] %></span>
on <%= car[1].strftime('%d.%m.%Y') %>
at <%= car[1].strftime('%H:%M') %>
<% end %>
ERB/templates上的Rails文档真的很好——它可能会帮助你更好地理解引擎盖下发生了什么。
如果你已经下定决心要使用to_sentence
,那么有一个视图助手可以让处理起来稍微容易一点:
<%=
to_sentence(
@driver.cars.pluck(:name, :purchase_date).map do |car|
raw(
<<~HTML
<span style="color: blue;">#{car[0]}</span>
on #{car[1].strftime('%d.%m.%Y')}
at #{car[1].strftime('%H:%M')}
HTML
)
end
)
%>