有几个孩子的桌子



所以我有一些表格:电视节目、剧集和游戏。

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)

最新更新