【问题标题】:PG missing FROM-clause entry for tablePG 缺少表的 FROM 子句条目
【发布时间】:2017-02-02 15:57:51
【问题描述】:

我使用acts_as_taggabe gem 我的新闻模型

has_many :taggings
has_many :tags, through: :taggings

有这个范围:
scope :tag, -> (tag_name) { joins(:tags).where('tag.name = ?', tag_name)}

导致当前错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "tag"

生成此 SQL:
SELECT "news".* FROM "news" INNER JOIN "taggings" ON "taggings"."news_id" = "news"."id" INNER JOIN "tags" ON "tags"."id" = "taggings"."tag_id" WHERE (tag.name = 'lorem')):

这是什么原因?如何修复范围? 提前致谢!

【问题讨论】:

    标签: mysql ruby-on-rails ruby postgresql


    【解决方案1】:

    表名是'tags'而不是'tag'。

    scope :tag, -> (tag_name) { joins(:tags).where('tags.name = ?', tag_name)}
    

    【讨论】:

    • 天哪!这很明显谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 2019-02-17
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多