想知道是否有办法只禁用选项列表中的第一个 nil 选项。有多个值为 nil 的选项。
例如,如果我们有
options_for_select(
[["first", nil],
["second", "second"],
["third", "third"],
["fourth", nil]])
产生
<option name="first" value>first</option>
<option name="second" value="second">Second</option>
<option name="third" value="third">Third</option>
<option name="fourth" value>Fourth</option>
并传入禁用值将禁用所有值为 nil 的值
options_for_select(
[["first", nil],
["second", "second"],
["third", "third"],
["fourth", nil]] , :disabled=>"")
<option name="first" value disabled>first</option>
<option name="second" value="second">Second</option>
<option name="third" value="third">Third</option>
<option name="fourth" value disabled>Fourth</option>
无论如何,我可以指定第一个要禁用的选项,而不管其值如何?最终目标是拥有
<option name="first" value disabled>first</option>
<option name="second" value="second">Second</option>
<option name="third" value="third">Third</option>
<option name="fourth" value>Fourth</option>
您可以更新您的值并传递给 option_for_select 助手。
arr = [["first", nil],["second", "second"],["third", "third"],["fourth", nil]]
val = arr.select{|v| v[1].nil?}
if val.any?
dis = val[0][0]
arr.push(:disable=>dis)
end
在上面的示例中,首先我从数组中选择所有 nil 值,然后我选择第一个 nil 值并将该值传递给 disable 变量。现在您可以将 arr
变量传递给助手
options_for_select(arr)
希望这对你有用。
我是一名优秀的程序员,十分优秀!