【问题标题】:Display checkbox from loop elements从循环元素显示复选框
【发布时间】:2017-01-06 18:10:13
【问题描述】:

我有一个创建新食谱的表格。 每个配方可以有多个标签。 我想显示所有标签的可能性并允许用户选中或取消选中它们。 我能够漂亮地显示标签,但我不知道如何将它们变成复选框...... 它们必须作为数组保存在字段all_tags 中。

= simple_form_for @recipe, html: {multipart: true} do |f|
  - if @recipe.errors.any?
    #errors
      %p
        = @recipe.errors.count
        prohibited this recipe from being saved:
      %ul
        - @recipe.errors.full_messages.each do |message|
          %li= message
  .row
    .panel-body
      = f.input :title, input_html: {class: 'form-control'}
      = f.input :description, placeholder: 'Dites nous ce que vous aimez dans cette recette ? où l\'avez-vous découverte ? avec quoi l\'accompagnée vous ? ...', input_html: {class: 'form-control'}
      = f.input :image, input_html: {class: 'form-control'}
      .tag-wrapper
        - @tags.each do |tag|
          %ul
            %li.tag.fa.fa-plus
              = tag.name

【问题讨论】:

    标签: ruby-on-rails forms checkbox simple-form


    【解决方案1】:

    试试这个:

    .tag-wrapper
      - @tags.each do |tag|
        = check_box_tag tag.name
    

    编辑:

    如果您需要将它们保存为数组,请尝试以下解决方案:

    = f.input :all_tags, :as => :check_boxes, :collection => @tags
    

    【讨论】:

    • 差不多。我有所有的复选框,但它不显示标签的名称。并且字段名称是all_tags,我在哪里指定它?我更新了我的帖子
    • 好,我们继续前进 :) 唯一的问题是,不是保存所有name 的数组,而是保存所有tag_id 的数组...这是如何HTML 看起来:
    • 尝试使用@tags.map{|tag| tag.name} 而不仅仅是@tags
    • 有效!谢谢我花了几个小时试图解决这个问题。只是最后一个问题:你知道为什么它们都显示在上面吗?不像列表或任何其他允许您单击每个的方式。
    • 不客气!你可以用一些图片和/或更多信息来更新你的问题,因为我不完全明白你的问题。
    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多