【问题标题】:How do I create a multiple item select list in Rails from database如何从数据库中在 Rails 中创建多项选择列表
【发布时间】:2017-12-12 23:28:42
【问题描述】:

这是我的代码 - 它工作正常,但我希望能够选择多个组织,而此选择只允许我选择一个。

<%= f.collection_select :id, 
                        Organisation.order(:Company_Name), 
                        :id, 
                        :Company_Name, 
                        options = {include_blank: "Select an Organisation"}, 
                        html_options = {:onchange => 'broadcast_dropdown_change(document.getElementById("broadcast_country_id"), document.getElementById("broadcast_organisation_id"))'} %>

请帮助我解决这个问题,并提供有关如何改进此代码的任何建议。

谢谢。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

我认为您只需要添加 html 选项 multiple: true :) 希望可以做到,又好又方便!

如果不是,您需要确保允许的参数与传递的参数匹配 - 可能是 JSON 编码的选项数组 - 并在数据库中适当地解析/保存它们。

我在评论中链接到您的帖子的副本中提供了更多示例。让我知道你的进展情况,如果需要,我会提供更多信息!


根据您的评论进行更新,这是一个示例:

<%= f.collection_select :id, 
                        Organisation.order(:Company_Name), 
                        :id, 
                        :Company_Name, 
                        { include_blank: "Select an Organisation" }, 
                        onchange: 'broadcast_dropdown_change(document.getElementById("broadcas‌​t_country_id"), document.getElementById("broadcast_organisation_id")', 
                        multiple: true %>

这里有几点说明:

  • 此方法采用的最后两个参数是optionshtml_optionsinclude_blank: ... 是前者,最后两个参数是后者
  • 您不需要将这些哈希分配给变量。第一个哈希需要括号来与第二个进行区分,尽管最终哈希是隐式的,因此不需要括号(尽管您可以使用它们,如果您发现它更易于阅读,即)

    { onchange: 'broadcast_dropdown_change(document.getElementById("broadcas‌​t_country_id"), document.getElementById("broadcast_organisation_id")', 
      multiple: true }
    
  • 快速浏览一下如何命名变量 - 花时间正确格式化它们是值得的 - 例如,:Company_Name 应该总是小写蛇形 :company_name

希望对您有所帮助 - 再次向我喊一声,让我知道您的进展情况:)

【讨论】:

  • 我似乎无法正确使用这个,我在哪里添加 multiple: true 在这段代码中,当我像你发布的链接上显示的那样添加它时,我收到一个错误,@ 987654330@ 像这样不允许我选择多个。
  • 感谢@MrNash 的更新——看看我更新的答案。你几乎完成了,只需要进行一些调整:) 有任何问题,请告诉我!
  • 非常感谢@SRack 我真的很感激它
  • 不客气@MrNash - 很高兴为您提供帮助:) 如果解决了问题,请随时接受答案...
猜你喜欢
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多