所以我有一些表格:电视节目、剧集和游戏。
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字段的Games的方法,但除此之外,我有点陷入了困境。非常感谢您的帮助!
您可以使用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)
你能试试这个吗?
轨道3
@game = Game.where(:episode_id => nil)
轨道2
@game= Game.find_all_by_episode_id(nil)