Украшение модели Ruby on Rails с помощью обратного вызова Draper внутри

Я использую Cable Ready и Draper Gem в своем проекте Rails. У меня возникли проблемы с оформлением внутри обратного вызова. Вот что у меня есть в обратном вызове модели:

        after_save do
    cable_ready[SplitsChannel].text_content(
      selector: "#payment-amount",
      text: payment.decorate.amount_f
    ).text_content(
      selector: "#left-to-pay",
      text: table_session.decorate.left_to_pay_f
    ).broadcast_to(split)
  end

Когда обратный вызов выполняется, я получаю в журналах сервера:

      ActiveSupport::Notifications::InstrumentationSubscriberError (Exception(s) occurred within instrumentation subscribers: NoMethodError, NoMethodError):

Это определениеamount_fвPaymentDecorator:

        def amount_f
    h.to_brl(amount)
  end

left_to_pay_fопределяется аналогично. Это определениеto_brlвApplicationHelper:

        def to_brl(centavos)
    number_to_currency(centavos.to_f / 100, unit: "R$", separator: ",", delimiter: ".")
  end

Бегpayment.decorate.amount_fиtable_session.decorate.left_to_pay_fнаAppPaymentэкземпляр работает как положено в рельсах c. Однако, когда обратный вызов выполняется, я получаю ошибку выше.

Использование неформатированногоpayment.amountиtable_session.left_to_payзначения в операциях готовности кабеля также работают, но задают для внутреннего текста целевых элементов DOM неформатированные значения. Следовательно, проблема, похоже, связана с украшением связанных записей внутри обратного вызова.

0 ответов

Другие вопросы по тегам