Sim*_*mon 5 ruby ruby-on-rails multiple-select
我有一个带有列的设置模型options,并将其设置为与serialize :options. 在我看来,我有一个多选框,select("settings", "options", ['option1','option2','option3'], {}, :multiple => true)只要用户至少选择一个选项,就可以使用它。但是,如果他们不选择任何选项,则不会提交任何选项,因此不会更新选项。
如何允许用户从 rails 的多选框中选择零选项?
如果未发布属性,我不喜欢假设值为空。它破坏了 Rails 期望更新属性的方式,并且如果您将控制器操作也用于 API 和 HTML,则可能会出现问题。我处理此问题的首选方法是在多选之前添加隐藏的输入字段。
<input type="hidden" value="" name="parent_model[my_attribute_ids][]">
Run Code Online (Sandbox Code Playgroud)
如果您使用 JQuery,您可以自动添加这些隐藏的输入字段:
$('select[multiple="multiple"]').each(function(i){
$(this).before('<input type="hidden" name="'+this.name+'" value="" />')
});
Run Code Online (Sandbox Code Playgroud)
我知道这个答案不是很及时,但我希望这对有类似问题的人有所帮助。