所以我需要(出于UX的原因)在select字段中包含一个空白字段(包含include_blank:选项),但是禁用它。 这可能吗?
我一直试图传递
disabled: [nil]
和
disabled: [""]
但它似乎没有削减它..
答案 0 :(得分:1)
这是不可能的。但是,您可以使用prompt
/ include_blank
和required
的组合来确保最终用户选择正确的值:
<%= select_tag('foo', options_for_select([['bar','bar'],['baz','baz']]), prompt: "Select a Foo", required: true %>
或
<%= select_tag('foo', options_for_select([['bar','bar'],['baz','baz']]), required: true %>
将include_blank
选项设置为true
并且不存在required
时, true
会自动设置为prompt
。
答案 1 :(得分:0)
我在通过接受的保险计划过滤用户方面遇到类似的问题,并且无法进行所需的选择(如果未选择,则显示所有用户),因此我向控制器添加了类似的内容(可能很hacky,但确保默认为空)除非用户选择其他选项,否则第一个选项将被忽略):
User.joins(:insurances).where(insurances: { id: query[:insurance] }) unless query[:insurance].first.empty?
如果未选择query[:insurance]
,则返回[""]
。