两个模型 User 和 Article 的关系如下:
用户有一个篇文章
文章属于用户
-用户有一个名为“状态”的字段
-文章有一个名为“thing_i_need”的字段
class User < ActiveRecord::Base
has_one :article, foreign_key: request_id
# status :integer
end
class Article < ActiveRecord::Base
belongs_to :user, foreign_key: request_id
# thing_i_need :string
end
查询:User.where(status: 'xyz').last.article.thing_i_need
目前,会触发两个查询来获取“thing_i_need”
有什么方法可以在一次查询中完成吗?
是否this帮助?
最佳答案
你可以试试这个
User.joins(:article).where(status: 'xyz').pluck('articles.thing_i_need').last
我建议阅读 select & pluck来自文档的查询方法,早些时候我尝试用 select 代替 pluck 但它没有用。
关于mysql - 在 activerecord 中可能使用连接将两个 SQL 查询减少为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282280/