Я строю SQL-запрос и создал метод выполнения для его запуска следующим образом:
module Helper
module Action
BASE_SQL_QUERY = 'SELECT a,b,c FROM SOME_TABLE'
SELECT_QUERY = "#{BASE_SQL_QUERY}"
def self.execute(action:, db_client:, data:)
db_client.prepare(Helper::Count::SELECT_QUERY).execute
end
end
end
Он работает нормально, но у меня будет точно такой же модуль, и только разные будут взапрос.Вместо SELECT a,b,c
это будет SELECT count(*)
, а все остальное будет таким же.
В методе действия аргумент action будет иметь то, что я хочу сделать action == 'read'
do SELECT a,b,c
и для action == count
doSELECT count(*)
.
То, что я пытаюсь сделать, это иметь только один модуль Action и основанный на значении action build sql.Возможно ли это сделать?Я пробовал несколько способов, таких как создание метода и передача ему действия, и пытался построить SQL, но я получаю ошибку dynamic constant assignment
, потому что значение CONSTANT не может быть в методе.
возможно ли построить SQL на основе действиязначение?