ruby-on-rails - 禁用第一个 nil 选项 - rails

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.1

想知道是否有办法只禁用选项列表中的第一个 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)

希望这对你有用。

关于ruby-on-rails - 禁用第一个 nil 选项 - rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39523483/

相关文章:

c++ - 如何获取在当前 RB 文件中运行的 Ruby 类的实例? (在 C++ 中嵌入 Ruby)

ruby-on-rails - 为什么我会收到此参数错误?

ruby-on-rails - 如何在 ruby​​ on Rails 中传递数据的 id 进行编辑?

ruby-on-rails - 使用 'haml_tag' 测试助手

html - 在 Rails 应用程序中自动加载 Assets 文件

ruby - 谁能告诉我现在 payflowpro 的确切 URL 是什么,Url "https://payflowpro.paypal.com"现在对我不起作用

ruby-on-rails - Devise 在更改密码后注销用户

ruby-on-rails - 根据数组生成文件列表

ruby-on-rails - Nokogiri 和 Mechanize 帮助(通过 div 类和抓取导航到页面)

ruby-on-rails - 如何在使用 Rails 3.x 时自定义 Twitter Bootstrap ?