0

I have a table called LayerProducts that contains layer_id and product_id attributes.

I would like to create a query where I can pass in an array of arrays that looks like this:

[ [:layer1_id, :product1_id], [:layer2_id, :product2_id], [:layer3_id, :product3_id] ] 

and return all records of LayerProduct that contain any of the combinations supplied.

The parent array is not fixed-length, so the query would need to be dynamic to accommodate any number of combinations.

Is this possible and if so, how would I go about creating this query using either SQL or active record?

1 Answer 1

1

You can construct a raw sql and use active record. Something like this:

def self.for_multiple_lp(arr=[]) # Handle case when arr is not in the expected format. condition = arr.collect{|a| "(layer_id = #{a[0]} AND product_id = #{a[1]})"}.join(" OR ") where(condition) end 

For just raw sql without activerecord you can refer this

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.