【问题标题】:How to get value in controller of an bootstrap-multiselect-rails如何在 bootstrap-multiselect-rails 的控制器中获得价值
【发布时间】:2017-07-04 17:10:25
【问题描述】:

我是 rails 和 web 新手。我使用'bootstrap-multiselect-rails' gem 来创建一个选择框和普通输入。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    以便在选择中清除参数。

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

    【讨论】:

    • 你说得对!我受到 gem 示例的启发来进行选择,因此我没有注意其他参数。我走错了路。我补充一点,一定要注意参数Select(object,method,choices=nil,options={},html_options={},&block)的顺序
    【解决方案2】:

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

    如果有关于如何为 select_tag 添加价值的问题,请查看 rails 文档。在您的 html 标记中,我看不到选项是否有价值。

    【讨论】:

    • 我编辑了帖子以添加代码。我忘了说这个表单旨在刷新下面的文章列表,我认为与Ajax有关系......恢复所有这些参数(输入和选择框)以在查询中使用它们的方法是什么更新列表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2020-11-03
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多