【发布时间】:2020-12-21 08:39:32
【问题描述】:
我不明白{article: :categories} 对以下代码的含义。
我已阅读文档,但没有显示像 includes(z => {x: :y}) 这样的示例。有人可以把它换成我能理解的不同形式吗? x: :y到底是什么?
@articles = ArticleBase.includes(media.to_sym => { article: :categories })
另外,如果我想添加另一个条件(.includes(media.to_sym => :article)),下面的代码在语法上可以吗?
@articles = ArticleBase.includes(media.to_sym => { article: :categories }, media.to_sym => :article)
【问题讨论】:
-
它
includes是结果集中的(嵌套)关系,因此您无需编写多个查询。 “主要”关系由media.to_sym指定,即动态的。看看你的 Rails 控制台——它应该输出 SQL 查询,这可能有助于理解发生了什么。 (取决于您的数据库架构) -
你读过the documentation吗?另外,these docs 也不错。网上也有很多深入的blog posts,以及相关的questions on StackOverflow。
-
关于你的后一个问题:它是有效的语法(我认为?......尝试运行它来看看!),但那个具体的例子是没有意义的——因为你只包括一个已经包含的关系.
标签: ruby-on-rails ruby syntax include