Ruby on rails 在窗体上设置Default:Disabled时,某些布尔选项会被禁用吗?

Ruby on rails 在窗体上设置Default:Disabled时,某些布尔选项会被禁用吗?,ruby-on-rails,ruby,simple-form,Ruby On Rails,Ruby,Simple Form,我有下面一行代码生成一个表单。调用时,控制器在某些情况下将@disabled设置为true,在另一些情况下设置为false = simple_form_for [:applicant, @application ],defaults: { disabled: @disabled }, url: wizard_path, method: :put do |f| 在某些页面上,我有一个使用布尔选项的select语句 = f.input :accommodation, as: :select, co

我有下面一行代码生成一个表单。调用时,控制器在某些情况下将@disabled设置为true,在另一些情况下设置为false

= simple_form_for [:applicant, @application ],defaults: { disabled: @disabled }, url: wizard_path, method: :put do |f|
在某些页面上,我有一个使用布尔选项的select语句

= f.input :accommodation, as: :select, collection: yes_no
它将以下帮助器函数作为集合调用

  def yes_no
[
  ['Yes', true ],
  ['No', false ]
]
end

当@disabled设置为false时,simple_form将呈现false选项,它似乎将禁用该选项。我不确定如何绕过这个布尔战斗,在下拉列表中生成true和false选项,同时允许@disabled禁用整个表单(如果适用)

SimpleForm和Rails之间的已知问题:

tonywok的答案似乎是目前有效的解决办法:

改变

= simple_form_for [:applicant, @application ],defaults: { disabled: @disabled }, url: wizard_path, method: :put do |f|

= simple_form_for [:applicant, @application ],defaults: { disabled: @disabled, readonly: nil }, url: wizard_path, method: :put do |f|