【发布时间】:2017-06-13 12:25:08
【问题描述】:
我认为这很简单,但我就是不明白。我需要加入 3 个表并让 rails 从所有 3 个表中返回值。我已经完成了连接,但 rails 只返回 1 个表中的值。我想我只是不知道语法
这是我的控制器方法
@previous_results = Test.joins(:run, :detail).where("runs.name = ? AND tests.name = ?", @run.name, @test.name).last(1000)
这里的连接是来自它的sql
SELECT `tests`.* FROM `tests` INNER JOIN `runs` ON `runs`.`id` = `tests`.`run_id` INNER JOIN `details` ON `details`.`test_id` = `tests`.`id`
WHERE (runs.name = 'SNMSubscriberSpecificTemplatesFeedsTest' AND tests.name = 'testSitePrefixFalseForNTINSequentialList') ORDER BY `tests`.`id` DESC LIMIT 1000
我需要做的就是从详细信息表中返回值。我想要从细节中获取 2 列值,而不是进行测试。* 我是 test.id、test.name、detail.text、detail.message 作为我的回报
Int active record 如何告诉它不仅返回测试表数据,还包括详细信息列
SQL 中的这个查询做了我想要知道的如何主动记录它
SELECT `tests`.*, `details`.`detail_text`, `details`.`detail_error`
FROM `tests`
INNER JOIN `runs` ON `runs`.`id` = `tests`.`run_id`
INNER JOIN `details` ON `tests`.`id` = `details`.`id`
WHERE (runs.name = 'SNMSubscriberSpecificTemplatesFeedsTest' AND tests.name = 'testSitePrefixFalseForNTINSequentialList')
ORDER BY `tests`.`id` DESC LIMIT 1000
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 activerecord