【问题标题】:Serializing ActiveRecord::Relation objects for storage序列化 ActiveRecord::Relation 对象以进行存储
【发布时间】:2013-06-17 13:21:31
【问题描述】:

我正在尝试为我的应用程序构建一个报告功能,每个报告本质上都是一个带有名称的活动记录关系/查询。我需要序列化这些关系,以便我可以保留它们并在以后获取它们。这可能吗?

否则我必须求助于序列化由关系生成的 sql,然后使用它来查询。

【问题讨论】:

    标签: ruby-on-rails activerecord serialization


    【解决方案1】:

    我不确定这是否真的是一个好的解决方案,但您可以将 AREL 保存为字符串,然后像这样评估它:

    比如你想保存 Bid.first

    class Report < ActiveRecord::Base
      attr_accessible :arel
    
      def arel_eval
        args = @arel.split('.')
        model = args.shift.constantize
        args.inject(model) {|mod, met| mod.send(:#{met})}
      end
    end
    
    report = Report.new(arel: "Bid.first")    
    report.arel_eval
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多