check_box_tag打印所有对象信息以形成视图

时间:2017-05-22 22:42:52

标签: ruby-on-rails

我有两个模型,有很多关系,我试图让表单正常工作。我按照Railscast here进行了操作,我也在查看它上面的API停靠栏here

有问题的代码是我的形式:

<%= Region.all.each do |region| %>
  <%= check_box_tag 'religion[region_ids][]', region.id %>
  <%= region.name %><br />
<% end %>

它会正确地显示区域的复选框和名称,但它也会打印每个区域的所有信息。enter image description here

有谁能告诉我它为什么这样做?

1 个答案:

答案 0 :(得分:1)

您表单的第一行有一个拼写错误:<%= Region.all.each do |region| %>。它不应该在开头的erb标签中有等号=。因此,将开头从<%=更改为<%,如下所示:

<% Region.all.each do |region| %>
  <%= check_box_tag 'religion[region_ids][]', region.id %>
  <%= region.name %><br />
<% end %>

发生这种情况的原因是当您使用等号时,它将尝试显示该行的输出。在Ruby中,.each方法总是返回原始数组,这就是你看到所有额外信息的原因。