我有三个模型,包括祖父母,父母,子女关系:Organization
,Category
,Post
。
我正在尝试在Post
模型中创建一个范围,首先在传递的集合上使用where
,然后在祖父上使用<{p}}:
scope :ready, -> {
where("next_setup_at < ?", DateTime.current)
.joins(category: :organization)
.where("organizations.active = ?", true)
}
但是Postgres给我一个错误:
ActiveRecord :: StatementInvalid:PG :: AmbiguousColumn:ERROR:列引用“next_setup_at”不明确 第1行:... zations“。”id“=”类别“。”organization_id“WHERE(next_setup ... ^
:SELECT“posts”。* FROM“posts”INNER JOIN“categories”ON“categories”。“id”=“posts”。“category_id”INNER JOIN“organizations”ON“organizations”。“id”=“类别“。”organization_id“WHERE(next_setup_at&lt;'2016-03-22 15:57:19.971887')AND(organizations.active ='t')
答案 0 :(得分:2)
查看您的import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
bootstrap(App); /*should be AppComponent */
条款。第二个在定义要查询的列时做得很好。
EXCEPTION: Token must be defined! angular2.dev.js:23740
第一个没有。
.where
您必须定义where("organizations.active = ?", true)
列引用的表。导致
where("next_setup_at < ?", DateTime.current)
进一步改善
您可以轻松指定要在纯ActiveRecord中引用的表,如下所示:
next_setup_at