[英]Rails how to use a select list for a boolean field?
我在 Rails 5.1.4 上运行,并且在为 boolean 字段使用 select 标签时遇到问题。 这是我的表格:
= f.select :insurance_authorization_required, options_for_select([["Yes", true], ["No", false]]), { :prompt => 'Select One'} , { :class => 'dropdown' }
我还验证了该字段的存在:
validates :insurance_authorization_required, presence: true
选择Yes
会将字段正确保存为 true,但是如果我 select No
,我会收到一条错误消息,指出insurance_authorization_required can't be blank
。 我尝试改用0
和1
:
= f.select :insurance_authorization_required, options_for_select([["Yes", 1], ["No", 0]]), { :prompt => 'Select One'} , { :class => 'dropdown' }
但这会产生相同的结果:选择“是”保存为true
,选择“否”会引发错误。
我也尝试在我的 model 中投射这个领域:
def insurance_authorization_required=(val)
if val.is_a?(TrueClass) || val.is_a?(FalseClass)
super(val)
else
super(val == 'true' || val == '1')
end
end
这也没有解决。 选择“否”时仍然出现空白错误。
我看到其他多个类似的问题,接受的答案是使用true
和false
作为我的 select 选项的值可以工作,但为什么它对我不起作用? 我错过了什么吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.