0

バグがありますが、見つけて解決できません。これが私がこれまでに持っているものです: https://gist.github.com/2936556これは、モデルの関係とコントローラーのアクションを示しています。 https://gist.github.com/2936562これは、バグをトリガーするアクションのビュー テンプレート パーツを示しています

バグは、フォーラムにトピックがある場合でも、「forum.lines.notopics」というメッセージが表示されることです。私はデバッガーの宝石を使用して物事を追跡しましたが、バグはちょっとランダムに見えます (デバッガーを使用すると、ほとんどの場合、デバッガーがなくても表示されます-常に)。

ログは、トピックをロードするクエリがないことを示しています。@topics の代わりに @forum.topics を使用しても、まったく違いはありません。

誰にも手がかりはありますか?

PSさらに情報が必要な場合は、お尋ねください。レール 3.2.1、ルビー 1.9.3。

4

1 に答える 1

1

唯一の考えは、Rails@topicsをチェックした時点では実際にはまだロードされていない可能性があるということ<% if @topics.any? %>です。トピックを熱心にロードしてみてください

@forum = Forum::Forum.includes(:topics).find_by_id(params[:id])

(とにかく、おそらくそれを行う必要があります。本当に N+1 クエリが必要ですか? :)

問題が解決しない場合は、代わりにトピック数を確認してください。@topics.any?

<% if @forum.topics.count > 0 %>
于 2012-06-15T16:05:05.523 に答える