Ruby on rails Rails选择选项-将第一个选项设置为禁用、选中

Ruby on rails Rails选择选项-将第一个选项设置为禁用、选中,ruby-on-rails,forms,Ruby On Rails,Forms,我在Rails表单中有一个select输入- <%= f.select :store_type_id, @storeType.map{ |type| [type.store_type.capitalize, type.id] }, {include_blank: 'Select store type'} %> 如何使第一个选项(“选择门店类型”)同时被禁用和选中 我想要的html等价物是 <option disabled selected>Select store

我在Rails表单中有一个select输入-

<%= f.select :store_type_id, @storeType.map{ |type| [type.store_type.capitalize, type.id] }, {include_blank: 'Select store type'} %>

如何使第一个选项(“选择门店类型”)同时被禁用和选中

我想要的html等价物是

<option disabled selected>Select store type</option>
选择商店类型

谢谢大家!

没有办法(以本机方式)确保跨浏览器功能,但这里有一个答案:

商店类型 def self.options options=self.all.collect{| type |[type.capitalize,type.id]} 选项。取消移动([“选择存储类型”,“0”]) 选择权 结束 #以你的形式 "0") %> 但是,您需要依靠浏览器来选择禁用的输入,这将自相矛盾。Chrome最新版本进入下一个非禁用输入

相反,您可能需要执行一些表单验证,以确保select的值不是空的


为了让未来的Ruby开发人员感到高兴(并使自己符合惯例和最佳实践),请记住Ruby支持snake_压缩变量:)

您可以使用disabled并传递选项来禁用

<%= f.select :field_name, options, {disabled: ['disabled_option_1', 'disabled_option_2']}, {id: "Select"} %>


很酷,谢谢!我明白你的意思,不过,我可能会尝试用验证来处理这个问题。如果我想禁用多个选项呢?@aldrien.h根据你的说法,你可以将值传递到
disabled
键下的参数中,比如,
f.select:store_type_id,options_for_select(StoreType.options,:disabled=>%w{0 1 2 3 4 5})
<%= f.select :field_name, options, {disabled: ['disabled_option_1', 'disabled_option_2']}, {id: "Select"} %>