mysql - PG 缺少表的 FROM 子句条目

标签 mysql ruby-on-rails ruby postgresql

我使用 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:错误:缺少表“标签”的 FROM 子句条目

生成此 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'):

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

最佳答案

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

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

关于mysql - PG 缺少表的 FROM 子句条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42006765/

相关文章:

php - 如何使用 cakephp 在另一个查询结果上搜索查询?

mysql - 在 MySQL 中查询 YAML

ruby-on-rails - 如何在 Ruby on Rails 中构建一个查询,该查询仅加入一个 has_many 关系的最大值并在该关系上包含一个选择过滤器?

ruby-on-rails - 使用 Ruby on Rails 4 配置中间件

Ruby:重写 puts 方法

ruby - 将时间与毫秒进行比较

mysql - 按周数进行群组分析

mysql - 为什么 MySQL GTID 不支持临时表

ruby-on-rails - 使用其他数组的第一个元素构建和排序数组

ruby-on-rails - 在 Ruby on Rails 中使用回形针和 ffmpeg 转换视频