我有一张看起来像这样的表
[3] pry(main)> Issue
=> Issue(id: integer, created_at: datetime, updated_at: datetime,
release_date: string)
另一个看起来像这样
[7] pry(main)> Tip
=> Tip(id: integer, author: string, code: string, summary: string,
description: text, created_at: datetime, updated_at: datetime,
issue_id: integer)
问题是当我运行这个sql查询时,省略了一个列,想知道为什么会这样。
Tip.joins("INNER JOIN issues on issue_id = issues.id").select("tips.summary,
issues.*, issues.id")
Tip Load (0.3ms) SELECT tips.summary, issues.*, issues.id FROM "tips"
INNER JOIN issues on issue_id = issues.id
=> [#<Tip id: 1, summary: "List the leafs in the tree of changes",
created_at: "2014-02-02 04:15:19", updated_at: "2014-02-02 04:15:19">]
注意上面生成的sql查询。想知道为什么结果中缺少release_date
列。
实际上,我甚至尝试过这种方法,但效果不佳。
Tip.joins("INNER JOIN issues on issue_id = issues.id").select("tips.summary,
issues.release_date, issues.id")
答案 0 :(得分:1)
这不仅仅是结果中隐藏的release_date
。您select
不属于Tip
类成员的任何字段都将被隐藏。
如果您的查询成功,它可以访问release_date
:
result = Tip.joins("INNER JOIN issues on issue_id = issues.id").select("tips.summary,
issues.release_date, issues.id").first
puts result['release_date']