在我的Post模型中,我尝试用每个评论的作者急切加载用户(帖子的所有者),收藏夹和评论:
Post.all.includes(:user, :original => {:favorite, :comments => :author })
但它不起作用,我收到错误
syntax error, unexpected ',', expecting => ...(:user, :original => [{:favorite, :comments => :author}... ...
有人可以告诉我问题在哪里吗?
答案 0 :(得分:1)
正如错误所示,这只是一个语法错误。您使用的{:favorite, :comments => :author}
不是有效的哈希。
使用数组作为:original
的值来执行您想要的操作:
Post.includes(:user, :original => [:favorite, :comments => :author]).all
你的困惑可能源于遗漏了哈希的一些花括号,并非在所有情况下都需要。用明确添加的花括号重写上面内容可能会更清楚:
Post.includes(:user, {:original => [:favorite, {:comments => :author}]}).all