【发布时间】:2009-08-19 10:11:40
【问题描述】:
在大多数情况下,它可能不是最好的解决方案,但我想要一个包含 3 个表的数据表。
class Media < ActiveRecord::Base
belongs_to :user
belongs_to :type
has_many :ratings
end
class User < ActiveRecord::Base
has_many :medias
has_many :ratings
end
class Rating < ActiveRecord::Base
belongs_to :user
belongs_to :media
end
这就是我想要的风景
<table>
<tr>
<th>Name</th>
<th>Comment</th>
<th>Creator</th>
<th>Type</th>
<% for user in @users %>
<th><%=h user.login %></th>
<% end %>
</tr>
<% for media in @medias %>
<tr>
<td><%=h media.name %></td>
<td><%=h media.comment %></td>
<td><%=h media.user.login %></td>
<td><%=h media.type.name %></td>
<% for user in @users %>
<td><%=h GET_RATING (media, user) %></td>
<% end %>%>
</tr>
<% end %>
</table>
基本上我希望每个用户对每个媒体的评分都有一个新行
我想要的是一个看起来像这样的表格:
media.name media.comment ... rating(media, user).rating
我认为在控制器中使用带有媒体查找方法的连接会更好,但我不知道究竟如何,可能的解决方案可能是将媒体和用户作为参数的辅助方法。
您认为最好的解决方案是什么?
【问题讨论】:
标签: ruby-on-rails database has-and-belongs-to-many