所以我有一些表:TvShow,Episodes和Games。
TvShow - has_many Episodes, has_many Games
Episodes - belongs_to TvShow, has_many Games
Games - belongs_to TvShow, belongs_to Episodes.
Games表中包含tv_show_id和episode_id的字段。剧集ID可以是空白的,因为一些游戏与节目相关联而不是特定剧集。我列出每个电视节目剧集,以及与该剧集相关的任何游戏都没有问题。
<% @tvshows.each do |tv| %>
<div class="gamebox">
<h3><%= tv.title -%></h3>
<% tv.episodes.each do |episode| -%>
<%= episode.title %><br />
<ul>
<% episode.tv_show_games.each do |g| %>
<li><%= g.title %> (<%= g.user.name %>)</li>
<% end %>
</ul>
<% end -%>
</div>
<% end -%>
但是,我也希望能够只抓住那些没有剧集关联的游戏。这样做的最佳方法是什么?我意识到我可能不得不创建一个只查询具有空episode_id字段的游戏的方法,但除此之外,我有点卡住了。非常感谢任何帮助!
答案 0 :(得分:0)
你能试试吗?
rails 3
@game = Game.where(:episode_id => nil)
rails 2
@game= Game.find_all_by_episode_id(nil)
答案 1 :(得分:0)
您可以使用SQL where子句
@games = Game.where('episode_id IS NULL')
或Rails 2选择器
@games = Game.where(:episode_id => nil)
或Rails 3选择器
@games = Game.where(episode_id: nil)