Столы с несколькими детьми - PullRequest
0 голосов
/ 21 января 2012

Итак, у меня есть несколько таблиц: TvShow, Episodes и Games.

TvShow - has_many Episodes, has_many Games
Episodes - belongs_to TvShow, has_many Games
Games - belongs_to TvShow, belongs_to Episodes.

В таблице игр есть поля для tv_show_id и episode_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, но в остальном я несколько застрял.Любая помощь с благодарностью!

Ответы [ 2 ]

0 голосов
/ 21 января 2012

Вы можете использовать оператор 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)
0 голосов
/ 21 января 2012

Не могли бы вы попробовать это?

рельсы 3

@game = Game.where(:episode_id => nil)

рельсы 2

@game= Game.find_all_by_episode_id(nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...