Получите информацию таблицы присоединения Activerecord через запрос контроллера - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть запрос, который сгенерировал список данных продукта; Я работаю, чтобы копнуть немного глубже и извлечь атрибут из таблицы соединений (ProductSelections). Как RFIDTag, так и Products имеют многие модели выбора продуктов (то есть таблица схемы содержит как rfid_tag_id, так и product_id). Поскольку я работаю из списка продуктов, мой запрос выводится здесь:

#original query (works as needed):

@warehoused_products = Product.includes(:rfid_tags).joins(:rfid_tags).where("rfid_tags.location_type = 'Warehouse' AND rfid_tags.location_id = ?", params[:id]) 

#Attempt at getting product selection data:

@product_histories = @warehoused_products.joins("INNER JOIN product_selections ON :product_selections.product_id = products.id").includes(:product_selections)

При проверке возникает довольно большая ошибка postgreSQL:

raise @product_histories.inspect:

PG::SyntaxError: ERROR: syntax error at or near ":" LINE 1: ...eted_at" IS NULL INNER JOIN product_selections ON :product_s...

При настройке запроса:

raise @warehoused_products.includes(:product_selections).joins(:product_selections).where("product_selections.product_id = ?", params[:product_id]).first.inspect

Я получаю nil результат - безошибочный и, вероятно, более чистый, но не совсем там.

Объект Product Selection выглядит так, для справки:

#<ProductSelection id: 269, user_id: 2, listing_id: 11, product_id: 35, created_at: "2016-07-14 15:38:11", updated_at: "2016-08-08 21:10:13", rfid_tag_id: 575, part_id: nil, use_time: 2173274, account_id: 1, deleted_at: nil>

Как мне разрешить запрос, чтобы я мог вытянуть связанный табличный объект?

1 Ответ

0 голосов
/ 20 ноября 2018
@warehoused_products = Product.includes(:rfid_tags).where("rfid_tags.location_type = ? AND rfid_tags.location_id = ?", 'Warehouse', params[:id]) 


@product_histories = @warehoused_products.includes("product_selections").where("product_selections.product_id = ?", params[:product_id]).first.inspect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...