hidden_field_tag не может передать логическое значение
Я передаю скрытое поле для формы, чтобы различать представления, из которых поступил запрос:
<%= hidden_field_tag("advanced", true)%>
Видимо, true передается в виде строки. Я пробовал разные синтаксисы, такие как:
<%= hidden_field_tag "advanced", true %>
<%= hidden_field_tag "advanced" => true %>
<%= hidden_field_tag :advanced => true %>
Это всегда переводится на это
<input type="hidden" name="advanced" id="advanced" value="true" />
Очевидно, я могу проверить строковое значение в контроллере, но это ожидаемое поведение?
1 ответ
Решение
Rails преобразует ваши параметры в эквивалентный html, и строки могут быть только в html. hidden_field_tag
это просто скрытый text_field_tag
поэтому значение должно быть текстовым. И в URL у вас также есть строка. Таким образом, преобразование должно быть сделано в контроллере.