Ошибка Phoenix при использовании render_to_string с помощником text_input
Я пытаюсь использовать метод render_to_string для генерации html-части, которую я хочу транслировать на канал феникса.
У меня проблема в том, что я получаю ошибку не реализованного String.Chars, когда мой частичный содержит помощник text_input.
Мой код для метода render_to_string выглядит следующим образом:
Phoenix.View.render_to_string(MyAppWeb.ProductView, "row_partial", product: product)
Мой файл row_partial.ex:
<td><%= text_input :product, :name, value: product.name %></td>
<td><%= product.supplier.name %></td>
и ошибка, которую я получаю:
String.Chars not implemented for {:safe, [60, "input", [[32, "class",
61, 34, "editable-input", 34], [32, "id", 61, 34, "product_name", 34],
[32, "name", 61, 34, "product[name]", 34], [32, "type", 61, 34, "text",
34], [32, "value", 61, 34, "Product #1", 34]], 62]}.
Я знаю, что это как-то связано с тем, как обрабатывается поле text_input, потому что все работает как положено, если я заменю поле input_text стандартным html-тегом ввода, как показано ниже:
<td><input value="<%= @product.name%>"></td>
<td><%= @product.supplier.name %></td>
Я полагаю, что это как-то связано с методом Phoenix.HTML.Safe, который экранирует код text_input и возвращает его безопасную HTML-версию, но я новичок в Elixir и Phoenix и не знаю, как обойти эту проблему.
Есть ли способ преобразовать экранированный HTML в то, что может обработать метод render_to_string?
Заранее благодарю за любую помощь.