Ошибка шаблона Rails неявного преобразования строки в строку Heroku - PullRequest
0 голосов
/ 11 декабря 2018

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

  def due_date()
    d =  Configurable[:payment_due_date]
    Date.parse(d).to_formatted_s(:long)
  end

И строка в шаблоне, которая выделяет ее жирным шрифтом:

  %td{:colspan=>'8'}
    blah blah blah
    %strong= due_date(:data)
    blah blah blah

Это отлично работает в dev и отлично работает на Heroku в течение многих лет.Но внезапно я получаю эту прекрасную ошибку:

ActionView::Template::Error (no implicit conversion of Sat, 09 Jun 2018 into String):

Там, где кажется, что он все еще имеет право работать с.Я подумал, что, возможно, это повышенный уровень защиты HTML или потеря следа того факта, что это строка.Я попробовал это, но ничего не изменилось.

%strong= "#{due_date(:data)}".html_safe

Так что, очевидно, я буду искать любые изменения версии гема, вызванные недавними развертываниями.Но мне просто интересно, есть ли у кого-нибудь представление о том, какая неудача может привести к этому сообщению.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Это было результатом обновления драгоценного камня Configurable Engine с 0.4.8 до 0.5.Я до сих пор не смог точно определить, почему это должно быть - но возврат на 0.4.8 решает проблему.

0 голосов
/ 11 декабря 2018

Вы пытались явно использовать:

due_date(:data).to_s

Ошибка является результатом того, что ruby ​​не знает, какой тип использовать для приведения даты.

Чтобы лучше понять,попробуйте выполнить следующее в консоли IRB:

> "3" + 4
=> TypeError (no implicit conversion of Integer into String)

Чтобы предотвратить непредвиденное поведение, он хочет, чтобы вы явно указали тип.Если вы этого не сделаете, не совсем понятно, ищете ли вы какой-либо из следующих выходов:

7 #Integer
"34" #String
"7" #String

Надеюсь, это поможет.

seb

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