在字符串插值中格式化变量

时间:2018-05-04 14:08:42

标签: ruby-on-rails date

我有一个字符串插值,如下所示:

<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

如何在日期和短月份的字符串插值中获取格式化日期。

2 个答案:

答案 0 :(得分:2)

transaction.date.strftime('%b')

https://apidock.com/ruby/Date/strftime

答案 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或添加自定义格式。