所有内容都正确发布,但我在复选框中看不到任何标签,只是空白。我的表格如下:
<%= 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
答案 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 %>