hidden_field_tag 布尔值传递失败

hidden_field_tag fails to pass boolean

我正在传递表单的隐藏字段以区分请求来自的视图:

<%= 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" />

显然,我可以检查控制器中的字符串值,但这是预期的行为吗?

Rails 将您的参数转换为等价的 html,并且只能在 html 中包含字符串。 hidden_field_tag 只是一个隐藏的 text_field_tag,所以值需要是文本。在 url 中你也有一个字符串。所以转换需要在controller中完成。