为什么 select 助手不自动显示 selected 值?
why select helper does not auto show the selected value?
此代码有效:
select("questionnaire", "is_active", options_for_select([["no", false], ["yes", true]], @questionnaire.is_active) )
但这不会:
select("questionnaire", "is_active", options_for_select([["no", false], ["yes", true]]) )
为什么 rails 不知道自己处理选定的值?这是什么逻辑?
我猜你是在没有表单对象的情况下直接调用助手:
<%= select(:questionnaire, :is_active, ......) %>
您应该在该对象的表单上调用它:
<%= form_for @questionnaire do |form| %>
<%= form.select(:is_active, [["no", false], ["yes", true]]) %>
在这种情况下,您实际上并不需要 options_for_select
,select 助手将使用适当的 selected 值调用它。
此代码有效:
select("questionnaire", "is_active", options_for_select([["no", false], ["yes", true]], @questionnaire.is_active) )
但这不会:
select("questionnaire", "is_active", options_for_select([["no", false], ["yes", true]]) )
为什么 rails 不知道自己处理选定的值?这是什么逻辑?
我猜你是在没有表单对象的情况下直接调用助手:
<%= select(:questionnaire, :is_active, ......) %>
您应该在该对象的表单上调用它:
<%= form_for @questionnaire do |form| %>
<%= form.select(:is_active, [["no", false], ["yes", true]]) %>
在这种情况下,您实际上并不需要 options_for_select
,select 助手将使用适当的 selected 值调用它。