2016-03-30 3 views
-1

Я stuggling с этой строки кода:Rails: 2, когда запросы

Warehouse.where(:product => self.product).pluck(:mrr).sum.round(2) 

Но дело в том, если продукт назван дважды приложение теперь не какой из них выбрать. Так что я пытался что-то вроде этого:

Warehouse.where(:product => self.product) 
     .where(:company => self.order.brand) 
     .pluck(:mrr).sum.round(2) 

Но тогда я получаю эту ошибку:

PG::UndefinedColumn: ERROR: column warehouses.company does not exist LINE 1: ...warehouses" WHERE "warehouses"."product" = $1 AND "warehouse...^: SELECT "warehouses"."mrr" FROM "warehouses" WHERE "warehouses"."product" = $1 AND "warehouses"."company" = ‘Adidas’

запрос должен реально смотреть вверх PRODUCTNAME и соответствующий бренд, а затем спустить цену.

schema.rb

create_table "warehouses", force: :cascade do |t| 
t.text  "category" 
t.text  "product" 
t.datetime "created_at", null: false 
t.datetime "updated_at", null: false 
t.string "brand" 
t.text  "period1" 
t.text  "period2" 
t.string "producttype" 
t.decimal "mrr" 
t.decimal "suf" 
t.decimal "discount" 
end 

Любые идеи?

+0

Пожалуйста, попка схемы БД для таблиц, участвующих. И обратите внимание, что запрос ищет «column warehouses.company», я бы предположил, что у продукта есть столбец компании. –

+0

У вас есть стол 'company' в таблице' складов'? – Pavan

+2

Что значит «продукт называется дважды»? –

ответ

2

Вы должны увидеть, что ERROR сказать в первой строке меняться

ERROR: column warehouses.company does not exist 
Смежные вопросы