如何包含空白但禁用它以进行简单的表单集合选择?

时间:2016-01-22 16:46:48

标签: ruby-on-rails ruby simple-form

所以我需要(出于UX的原因)在select字段中包含一个空白字段(包含include_blank:选项),但是禁用它。 这可能吗?

我一直试图传递

disabled: [nil]

disabled: [""]

但它似乎没有削减它..

2 个答案:

答案 0 :(得分:1)

这是不可能的。但是,您可以使用prompt / include_blankrequired的组合来确保最终用户选择正确的值:

<%= 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],则返回[""]