Mirkom63
@Mirkom63
Я программист

Как использовать шаблон формула из бд на ruby on rails?

Короче есть в базе формула, например "PRICE*0.07". Шаблон хранится в виде текста. Мне надо чтобы эта формула отработалась: сначала PRICE должен замениться на цифру, которая берется из переменной и потом умножиться на 0.07. соответственно нужно чтобы можно было написать любые действия (умножить, вычесить, поделить)
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 4
kirillplatonov
@kirillplatonov
Ruby on Rails developer
Решал такую задачу с помощью прекрасной библиотеки: https://github.com/rubysolo/dentaku
Умеет парсить математические и логические формулы, кодставляя динамические значения переменных.
Ответ написан
Комментировать
HighQuality
@HighQuality
☁ Ниндзя девелопер
Как пробовал решить? Какие трудности?
Ответ написан
@vsuhachev
Вы можете написать интерпретатор, исполняющий ваши формулы. Самый простой путь это сделать - освоить какую нибудь библиотеку для парсинга. На ruby я использовал treetop и citrus, последний вам подойдет.

Поглядите пример для citrus, там как раз разбирается такой интерпретатор простейших выражений.
Ответ написан
Комментировать
blackst0ne
@blackst0ne
Фулстэк-разработчик
some_variable = 10 
string_from_database = "some_variable * 5"

eval(string_from_database)
=> 50


Самая большая проблема здесь - это выполнить корректный санитайзинг строки, чтобы вам туда не подсунули какую-нибудь опасную конструкцию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы