如何在bootstrap-multiselect-rails的控制器中获得价值

时间:2017-02-15 20:38:47

标签: ruby-on-rails ruby-on-rails-5 bootstrap-select

我是铁杆和网络新手。我使用' bootstrap-multiselect-rails' gem创建一个选择框和正常输入 enter image description here
当我单击提交按钮时,我不会检索params变量中的选择框信息(输入很好检索)。

enter image description here 这可能是由于bootstrap-multiselect gem通过将其替换为ul,li系统来覆盖选择框的行为。

%select#select-type{:multiple => "multiple"} - @list_of_type.each do |type| %option{value: "#{type.label}"} #{type.label.upcase_first}

enter image description here

我已经看到了在javascript中检索信息时解释的答案,但是如何在控制器中对其信息进行处理?

2 个答案:

答案 0 :(得分:0)

您可以显示多表单的rails代码吗?您只需要为每个选择选项添加一个值,如果您允许控制器中的参数并为其迁移设置一个列,那么这些选项将由rails存储。

如果有关如何为select_tag添加价值的问题,请查看rails docs。在你的html标记中,我无法看到这些选项是否有价值。

答案 1 :(得分:0)

在您的选择字段中,我看不到您为其分配了一个参数。通常选择如下:<%= select :input, etc...其中:input是您要保存到模型中的参数。 Rails文档给出了以下示例:

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { include_blank: true })

所以问题是你没有指定参数。它也不是空的,在您的参数中根本没有提到它。正确?!请再次检查基本文档,了解如何创建选择字段并根据请求添加参数。不幸的是,我不知道使用你的gem的确切语法。 我也不确定:multiples =&gt;“multiple”。或者应该是多个:是吗?但我认为您的版本可能适用于gem。但是,您的haml仅使用#id和multiple创建HTML选择:true。但你想要的是这样的

<select name="post[category]" id="post_category">

因此选择中的参数是明确的。

之后,当您保存参数时,您也可以在控制器操作中使用它。 总之:将param添加到您的选择字段。我不知道如何使用gem进行此操作,但您可能会找到一些文档,或者查看基本的rails文档,这些文档可能会帮助您确定。对于使用rails选择,SO也有很多问题。祝你好运!