Check_box_tag没有正确显示标签

时间:2014-06-19 06:28:37

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

所有内容都正确发布,但我在复选框中看不到任何标签,只是空白。我的表格如下:

          <%= form_for @itemrecord do |f| %>

            <div class="col-xs-12">
              <p><b>Items people are asking for</b></p>
            </div>

            <% @wishlist.each do |category, list| %>
              <div class="col-xs-2">
                <div class="form-group box">
                  <h5> <%="#{category}"%> </h5>
                    <% list.each do |thing| %>
                        <%= check_box_tag ":item_name[]", "#{thing}" %>
                      </br>
                    <% end %>
                </div>
              </div>  
            <% end %>

              <%= f.submit "Go!", class: "btn btn-primary btn-large btn-block" %>
            </div>

          <% end %>

正在发生的事情是wishlist是我在控制器中设置的那些类别中的类别和项目的哈希值,然后由多个表单构建器调用以构建复选框。挑战在于,在当前的实现中,复选框params正确传递(FYI控制器代码位于底部),但是在每个复选框旁边,没有显示thing的文本(即没有标签)这样人们才能知道他们正在检查什么。

这是为一个复选框生成的html(对于所有复选框都是相同的)

基本上,我需要制作value标签。


仅供参考,所发生的事情是,对于每个选中的项目,都会创建一条记录。这是控制器代码:

def create

    items_to_be_saved = []
    inventory_params.each do |i|
      items_to_be_saved << ({ :signup_id =>    Signup.find_by_email(session[:signup_email]).id, :item_name => i })
    end

    if Inventory.create items_to_be_saved
      flash[:success] = "Thanks!"
      redirect_to root_path
    else
      render new_inventory_path
    end
end

def inventory_params
  params.require(":item_name")
end

2 个答案:

答案 0 :(得分:0)

在您的代码中:

<%= check_box_tag ":item_name[]", "#{thing}" %>

check_box_tag的第二个参数不是标签值,它只是一个在参数中转到控制器的值。如果您不想在复选框中显示标签,则需要在视图中致电label_tag

= label_tag ':item_name[]', thing
= check_box_tag ':item_name[]'

但你肯定应该检查simple_form gem,它允许你以更清洁的方式呈现复选框:

f.input :field, as: :boolean, inline_label: 'Label'

答案 1 :(得分:0)

你可以试试看,让我知道吗

<%= check_box_tag 'item_name[]', thing %>