从字符串解析方法并将其存储在数据库中

时间:2014-09-10 09:59:11

标签: ruby-on-rails ruby

我想允许用户指定用于计算某些属性的函数,并希望将此函数存储在泛型类中。也就是说,类的每个实例都具有相同的接口,但调用'calculate'方法的结果因用户提供的函数而异[/ p>

我还想序列化这个类并将其存储在数据库中供以后使用。这就是我的想法

class LogicalCharge < Charge
    attr_reader :name, :type, :formula, :threshold

    def initialize(name: nil, type: nil, formula: nil, threshold: nil)
      super(name: name, type: type)
      @formula = formula
      @threshold = threshold
    end

    def parse(formula: nil)

    end

    def calculate(dimensions: nil)
      parse(formula: formula).call(dimensions) < threshold
    end

关于如何最好地从这里开始的任何建议?

1 个答案:

答案 0 :(得分:0)

我建议采用一种不同的方法,在这种方法中,您有一个相关类的层次结构,一个用于计算函数的每个当前变量,另一个表包含类名称的字段和运行它的每个参数。

由于类都将符合相同的接口,因此应该可以正常工作。然后,您可以干净地清理用户输入,并避免让用户将可执行代码直接放在您的服务器上的可怕安全隐患。