Форматирующая переменная в интерполяции строк - PullRequest
0 голосов
/ 04 мая 2018

У меня есть интерполяция строк, которая выглядит следующим образом:

<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 голосов
/ 04 мая 2018

Еще лучше, используйте I18n локализацию форматов даты / времени , это просто, гибко и добавляет дополнительный уровень настройки для каждой локали.

# app/views/home/index.html.erb
<p><%= l Time.now, format: :short %></p>

Вы можете использовать форматы Rails Date / Tme по умолчанию или добавить свои собственные форматы.

0 голосов
/ 04 мая 2018
transaction.date.strftime('%b')

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...