我只是不明白 Rails 4 中新的引用()函数 我在这里阅读定义:http://apidock.com/rails/ActiveRecord/QueryMethods/references
这只是一个英语问题,但我仍然不清楚。 这个新功能的目标是什么? (之前没有它代码也运行良好)。
我必须始终为includes() 的每个表添加引用吗?
谢谢
最佳答案
当使用includes
时,Rails通常会单独加载结果。例如,如果您这样做
Post.includes(:comments)
它将发出一个查询来加载帖子,然后发出另一个查询来加载带有帖子的 post_id 的评论。
它将生成一个连接,例如,如果您想要这样做
Post.includes(:comments).where(comments: { user_id: 44})
其中一个条件依赖于相关表。但是,如果您要使用
Post.includes(:comments).where('comments.user_id = ?', 44)
您将在 Rails 4 中收到错误。任何时候您使用 SQL 代码段在条件中引用关系时,都必须使用引用
。为了解决上述问题,我们会这样做
Post.includes(:comments).where('comments.user_id = ?', 44).references(:comments)
当然,另一个选择是不在条件中使用 SQL 片段,如第二个代码示例,但并不总是可以避免它们。
关于ruby-on-rails-4 - Rails 4 中的引用功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432778/