如何通过join在Rails has_many中修复含糊不清的列引用

时间:2016-09-06 00:05:24

标签: ruby-on-rails postgresql ruby-on-rails-4

我有以下范围:

scope :tagged_with, -> (tags) { where(saved_tags: { name: tags }).joins(:saved_tags) }

我遇到了以下错误:

ActiveRecord::StatementInvalid (PG::AmbiguousColumn: ERROR:  column reference "name" is ambiguous

如何指定'名称'是否在此范围内引用了SavedTag模型?

1 个答案:

答案 0 :(得分:1)

您可以将表名添加到查询中,如下所示:

scope :tagged_with, -> (tags) { joins(:saved_tags).references(:saved_tags).where( "saved_tags.name" => tags ) }

注意:只要您直接引用以这种方式加入的表格,就应该使用references