显示相关记录的棘手问题

时间:2012-06-15 14:05:45

标签: ruby-on-rails-3 debugging activerecord

我遇到了一个但无法找到并解决的错误。 这是我到目前为止: https://gist.github.com/2936556这显示了模型关系和控制器动作。 https://gist.github.com/2936562这显示了触发错误的操作的视图模板部分

错误在于,即使论坛确实有主题,也会显示消息“forum.lines.notopics”。我已经使用调试器gem来跟踪事情,但是这些错误似乎是随机的(当使用调试器时,它出现在大多数情况下,不管它是什么 - 总是如此)。

日志显示没有查询来加载主题。 使用@ forum.topics代替@topics并没有任何区别。

有人有线索吗?

P.S。如果需要更多信息,请询问。 Rails 3.2.1,Ruby 1.9.3。

1 个答案:

答案 0 :(得分:1)

唯一的想法是,当你检查@topics时,Rails实际上可能还没有加载<% if @topics.any? %>。 尝试加载主题

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

(无论如何你可能需要这样做,你真的需要N + 1个查询吗?:)

如果无效,请尝试检查主题计数而不是@topics.any?

<% if @forum.topics.count > 0 %>