Pull Activerecord join table information through controller query
up vote
0
down vote
favorite
I have a query that generated a list of product data; I am working to dig in a bit deeper and extract an attribute from a join table (ProductSelections). Both RFIDTag and Products have many of the Product Selections model (i.e. the schema table contains both an rfid_tag_id and a product_id). Since I'm working from the product list, I'm deriving my query from here:
#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)
This raises a fairly large postgreSQL error when I check it:
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...
On adjusting the query:
raise @warehoused_products.includes(:product_selections).joins(:product_selections).where("product_selections.product_id = ?", params[:product_id]).first.inspect
I get a a nil
result - error-free, and likely cleaner, but not quite there.
A Product Selection object looks like so, for reference:
#<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>
How can I resolve the query so that I can pull the associated table object?
ruby-on-rails ruby join activerecord controller
add a comment |
up vote
0
down vote
favorite
I have a query that generated a list of product data; I am working to dig in a bit deeper and extract an attribute from a join table (ProductSelections). Both RFIDTag and Products have many of the Product Selections model (i.e. the schema table contains both an rfid_tag_id and a product_id). Since I'm working from the product list, I'm deriving my query from here:
#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)
This raises a fairly large postgreSQL error when I check it:
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...
On adjusting the query:
raise @warehoused_products.includes(:product_selections).joins(:product_selections).where("product_selections.product_id = ?", params[:product_id]).first.inspect
I get a a nil
result - error-free, and likely cleaner, but not quite there.
A Product Selection object looks like so, for reference:
#<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>
How can I resolve the query so that I can pull the associated table object?
ruby-on-rails ruby join activerecord controller
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a query that generated a list of product data; I am working to dig in a bit deeper and extract an attribute from a join table (ProductSelections). Both RFIDTag and Products have many of the Product Selections model (i.e. the schema table contains both an rfid_tag_id and a product_id). Since I'm working from the product list, I'm deriving my query from here:
#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)
This raises a fairly large postgreSQL error when I check it:
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...
On adjusting the query:
raise @warehoused_products.includes(:product_selections).joins(:product_selections).where("product_selections.product_id = ?", params[:product_id]).first.inspect
I get a a nil
result - error-free, and likely cleaner, but not quite there.
A Product Selection object looks like so, for reference:
#<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>
How can I resolve the query so that I can pull the associated table object?
ruby-on-rails ruby join activerecord controller
I have a query that generated a list of product data; I am working to dig in a bit deeper and extract an attribute from a join table (ProductSelections). Both RFIDTag and Products have many of the Product Selections model (i.e. the schema table contains both an rfid_tag_id and a product_id). Since I'm working from the product list, I'm deriving my query from here:
#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)
This raises a fairly large postgreSQL error when I check it:
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...
On adjusting the query:
raise @warehoused_products.includes(:product_selections).joins(:product_selections).where("product_selections.product_id = ?", params[:product_id]).first.inspect
I get a a nil
result - error-free, and likely cleaner, but not quite there.
A Product Selection object looks like so, for reference:
#<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>
How can I resolve the query so that I can pull the associated table object?
ruby-on-rails ruby join activerecord controller
ruby-on-rails ruby join activerecord controller
edited Nov 20 at 5:34
asked Nov 19 at 22:42
Boucherie
296213
296213
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
@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
That's the second thing I tried - I getnil
from this (this version makes it back into an instance variable, but still the same)
– Boucherie
Nov 20 at 15:08
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383703%2fpull-activerecord-join-table-information-through-controller-query%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
@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
That's the second thing I tried - I getnil
from this (this version makes it back into an instance variable, but still the same)
– Boucherie
Nov 20 at 15:08
add a comment |
up vote
0
down vote
@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
That's the second thing I tried - I getnil
from this (this version makes it back into an instance variable, but still the same)
– Boucherie
Nov 20 at 15:08
add a comment |
up vote
0
down vote
up vote
0
down vote
@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
@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
answered Nov 20 at 7:05
Gabbar
3,8431317
3,8431317
That's the second thing I tried - I getnil
from this (this version makes it back into an instance variable, but still the same)
– Boucherie
Nov 20 at 15:08
add a comment |
That's the second thing I tried - I getnil
from this (this version makes it back into an instance variable, but still the same)
– Boucherie
Nov 20 at 15:08
That's the second thing I tried - I get
nil
from this (this version makes it back into an instance variable, but still the same)– Boucherie
Nov 20 at 15:08
That's the second thing I tried - I get
nil
from this (this version makes it back into an instance variable, but still the same)– Boucherie
Nov 20 at 15:08
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383703%2fpull-activerecord-join-table-information-through-controller-query%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown