如何在数据库

时间:2017-12-11 14:18:28

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

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

<%= 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"))'} %>

请帮我解决此问题,以及有关如何改进此代码的任何建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为你只需要添加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_options; include_blank: ...在前者中,最后两个参数在后者中
  • 您不需要将这些哈希值分配给变量。第一个哈希需要括号来区分它与第二个哈希,尽管最后的哈希是隐式的,所以不需要括号(尽管你可以使用它们,如果你发现它更容易阅读,即。)

    { onchange: 'broadcast_dropdown_change(document.getElementById("broadcas‌​t_country_id"), document.getElementById("broadcast_organisation_id")', 
      multiple: true }
    
  • 快速了解您如何命名变量 - 值得花时间正确格式化它们 - 例如,:Company_Name应该始终是较低的蛇案例{{1} }

希望有所帮助 - 再次,给我一个喊叫,让我知道你是如何继续下去的。)