我正在尝试为网站用户创建一个表,以查看每个人所在的组。我有一个Groups表和一个People表。现在我只想在视图中显示一个人的组。我将向您展示我的代码以便澄清。这是我的桌子。
<table class="table table-striped">
<thead>
<tr>
<th><%= sortable 'phone_number', 'Phone Number'%></th>
<th><%= sortable 'subscribed', 'Subscribed State'%></th>
<th><%= sortable 'groups' %></th>
</tr>
</thead>
<tbody>
<% @groups.each do |group| %>
<% @people.each do |person| %>
<tr>
<td><%= person.phone_number %></td>
<td><%= person.subscribed %></td>
<td><%= group.name %></td>
<% end %>
<% end %>
</tr>
</tbody>
</table>
现在,无论每个人是否属于每个群体,每个群体都会出现。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
使用
Dim i as integer
Dim c As WebObject
For i=0 To self.ControlCount-1 //Fixes mistake in original code.
if self.ControlAtIndex(i) isa textFieldClass then
c= textFieldClass(self.ControlAtIndex(i)) //Need to cast here
if c.required then
// do something here…
end if
End If
Next
而不是
group.people.each do |person|
遍历每个组中的所有用户。
答案 1 :(得分:1)
我需要确定您的群组和人物模型,但很可能您需要做的是循环person.groups
。像这样:
<tbody>
<% @people.each do |person| %>
<tr>
<td><%= person.phone_number %></td>
<td><%= person.subscribed %></td>
<% person.groups.each do |group| %>
<td><%= group.name %></td>
<% end %>
<% end %>
</tr>
</tbody>
通过这种方式,您只需迭代属于个人groups
的{{1}},而不是数据库中的所有person
。
请注意,如果您以这种方式格式化,除非每个人的组数相同,否则您的表行的长度将不同。