我有一个sale_selection
模型,它同时属于purchase
和sale
。
在Postgres查询中,我试图按一些参数进行搜索,将销售item_name
分组,然后得出平均价格。
我遇到以下错误:
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: missing FROM-clause entry for table "sale"
控制器
@search = Purchase.where('extract(year from sale_year) >= ?', params[:select_year])
.joins(:region).where('regions.name = ?', params[:select_region])
.joins(sale_selections: :sale).group('sale.item_name').select('sale.item_name, AVG(sale.price) as price')
答案 0 :(得分:1)
需要在查询中提供的表名中进行更正(sales
,而不是sale
),
@search = Purchase.where('extract(year from sale_year) >= ?', params[:select_year])
.joins(:region).where('regions.name = ?', params[:select_region])
.joins(sale_selections: :sale).group('sales.item_name').select('sales.item_name, AVG(sales.price) as price')
答案 1 :(得分:1)
假设您遵循的是Rails最佳做法表的名称应为sales
而不是sale
@search = Purchase.where('extract(year from sale_year) >= ?', params[:select_year])
.joins(:region).where('regions.name = ?', params[:select_region])
.joins(sale_selections: :sale).group('sales.item_name').select('sales.item_name, AVG(sales.price) as price')