我有一个字符串插值,如下所示:
<ul class="list-group">
<% @top_ten_cashflows.each do |transaction|%>
<li class="list-group-item"> <%=" #{ transaction.date.format('%b') } - #{transaction.category.name} - #{transaction.amount}"%></li>
<%end%>
</ul>
当我尝试格式化日期时,Rails会出现以下错误:
NoMethodError at /Dashboard
private method `format' called for Wed, 20 Jul 2016:Date
控制器如下所示:
def dashboard
#@cashflows = current_user.cashflows
# cashflows_sums =@cashflows.inject do |sum,element|
@cashflows = Cashflow.where(user_id: current_user.id).joins(:category)
@top_ten_cashflows = @cashflows.order(:date).limit(10)
end
如何在日期和短月份的字符串插值中获取格式化日期。
答案 0 :(得分:2)
transaction.date.strftime('%b')
答案 1 :(得分:0)
更好的是,使用I18n localization Date/Time formats,它非常简单,灵活,并且可以为每个区域设置添加额外的自定义级别。
# app/views/home/index.html.erb
<p><%= l Time.now, format: :short %></p>
您可以使用default Rails Date/Tme formats或添加自定义格式。