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

How to get value in controller of an bootstrap-multiselect-rails

我是 rails 和网络的新手。我使用 'bootstrap-multiselect-rails' gem 创建一个 select 框和正常输入。

当我点击提交按钮时,我没有检索 params 变量中的 select 框信息(输入很好检索)。

这可能是由于 bootstrap-multiselect gem 通过用 ul,li 系统替换它来覆盖 select 框的行为。

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

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

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

如果对如何为 select_tag 增加价值有疑问,请查看 rails 文档。在您的 html 标记中,我看不到这些选项是否有价值。

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

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

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

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

这样参数在select中是明确的。

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