Как использовать шаблон формула из бд на ruby on rails?
Короче есть в базе формула, например "PRICE*0.07". Шаблон хранится в виде текста. Мне надо чтобы эта формула отработалась: сначала PRICE должен замениться на цифру, которая берется из переменной и потом умножиться на 0.07. соответственно нужно чтобы можно было написать любые действия (умножить, вычесить, поделить)
Решал такую задачу с помощью прекрасной библиотеки: https://github.com/rubysolo/dentaku
Умеет парсить математические и логические формулы, кодставляя динамические значения переменных.
Да честно говоря пока даже не понимаю в какую сторону смотреть......
Как заменить PRICE в тексте в целом понятно. То есть получить строку в виде " 2000*0.07" не проблема. А как ее запустить чтобы она отработалась не понятно....
Вы можете написать интерпретатор, исполняющий ваши формулы. Самый простой путь это сделать - освоить какую нибудь библиотеку для парсинга. На ruby я использовал treetop и citrus, последний вам подойдет.
Поглядите пример для citrus, там как раз разбирается такой интерпретатор простейших выражений.