【问题标题】:How to create checkboxes using scaffold in rails?如何在rails中使用脚手架创建复选框?
【发布时间】:2020-01-10 00:43:10
【问题描述】:

我必须创建一个功能来管理我的合同。使用字符串等一切都很好。但是我必须在我的脚手架中创建复选框作为示例 ()收费 ()化学家 如果选中这些框,我想保存它。
我试着把这段代码放到Form文件中,出现了,但是检查的时候不保存数据,我猜这不是正确的方法,因为数据库中没有创建任何东西。

<input type="checkbox" name="tag_ids[]" value="1" />

我打算在生成脚手架时将所有复选框生成为字符串并尝试其他方法。 有没有人有更好的想法我怎么能做到这一点,可能是最简单的方法,而不是真正的开发。谢谢大家。

【问题讨论】:

  • 您要为其保存值的模型名称是什么?

标签: ruby-on-rails checkbox scaffolding


【解决方案1】:

首先你应该检查变量是否被列入白名单, 其次,您应该为此尝试使用 rails 助手:

<%= form.check_box "tag_ids[]", "Chemist", false, id:"1"%>

使用这种语法,输入将存储在一个数组中,因此您可以为同一个变量添加多个复选框。输入将被存储["Chemist","Toll"]

稍后您可以通过.split轻松拆分这些

【讨论】:

    【解决方案2】:

    您可以在表单中添加以下内容

    <% Tag.all.each do |tag| %>
      <label>
        <%= f.check_box_tag "contract[tag_ids][]", tag.id, @contract.tags.include?(tag) %>
        <%= tag.name %>
      </label>
    <% end %>
    

    这可以通过你的参数传递,只要你的强参数允许它们,例如:

    params.require(:contract).permit(.... ,  tag_ids: [])
    

    请参阅此处进行适当讨论:https://kolosek.com/rails-join-table/

    另外,如果您有兴趣,我会考虑将 simple_form (https://github.com/plataformatec/simple_form) 用于您的 rails 表单。它让这一切变得非常简单。

    【讨论】:

    • 您好,感谢您的回复,但我遇到以下错误:“未初始化的常量 ActionView::CompiledTemplates::Tag”
    • 以上答案假设有一个模型标签包含您的所有标签。
    猜你喜欢
    • 2013-08-23
    • 2016-05-21
    • 2011-09-27
    • 2014-07-19
    • 2014-06-12
    • 1970-01-01
    • 2013-09-03
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多