我有两个模型,有很多关系,我试图让表单正常工作。我按照Railscast here进行了操作,我也在查看它上面的API停靠栏here。
有问题的代码是我的形式:
<%= Region.all.each do |region| %>
<%= check_box_tag 'religion[region_ids][]', region.id %>
<%= region.name %><br />
<% end %>
它会正确地显示区域的复选框和名称,但它也会打印每个区域的所有信息。
有谁能告诉我它为什么这样做?
答案 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
方法总是返回原始数组,这就是你看到所有额外信息的原因。