0

I'd like to do a query using the Sequel's Models object. I'd like the pattern to match certain variables value like so:

Models::Show.grep(:name, %w'#{var1} #{var2}')

But unfortunately, the Models.grep instance method seems not to be working this way. It query as following:

SELECT * FROM "shows" 
WHERE (("name" LIKE '#{titre_fr}' ESCAPE '\') 
OR ("name" LIKE ' {titre_en}' ESCAPE '\'))

Is there a way to make the function work with variables ?

Francis.Beauchamp
  • 1,323
  • 15
  • 28

2 Answers2

1

Just do as below :

Models::Show.grep(:name, %W(#{var1} #{var2}))

Demo example :

a = 2
b = 3
%W(#{a} #{b}) # => ["2", "3"]

Read this also Ruby arrays: %w vs %W.

Community
  • 1
  • 1
Arup Rakshit
  • 116,827
  • 30
  • 260
  • 317
0

Your code

Models::Show.grep(:name, %w'#{var1} #{var2}')

Is using single quotes. Change to double quotes and it will work

Models::Show.grep(:name, %w"#{var1} #{var2}")
MR-RON
  • 397
  • 2
  • 13