我的product
和tag
模型通过联接表has_and_belongs_to_many
具有products_tags
关联。我有许多带有Limestones标签的产品,许多带有Moldings标签的产品,但我想只展示那些兼容两者的产品。我知道我遗漏了一些Rails / Ruby的基础知识,但我仍然不会看到它。
我正在尝试下面的代码给出了错误PG::UndefinedTable: ERROR: missing FROM-clause entry for table "tag"
products_controller.rb
...
def index
if params[:query]
@products = Product.search_for(params[:query]).includes(:tags)
@mouldings = @products.where('tag.name LIKE ? AND tag.name LIKE ?', 'Mouldings', 'Limestones')
else
...
end
end
...
答案 0 :(得分:5)
尝试使用以下from sqlalchemy.dialects.postgresql import UUID
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Foo(db.Model):
id = Column(Integer, primary_key=True)
uuid = Column(UUID(as_uuid=True), unique=True, nullable=False)
代替tags
tag
因为您的表格名称为@mouldings = @products.where('tags.name ILIKE ? AND tags.name ILIKE ?', 'Mouldings', 'Limestones')
而非tags
且明确表示
PG :: UndefinedTable:错误:表“tag”缺少FROM子句条目
<强>更新强>
tag
更新2
@products = Product.search_for(params[:query]).where('true')
@mouldings = @products.includes(:tags).where('tags.name ILIKE ? AND tags.name ILIKE ?', '%Mouldings%', '%Limestones%')