我正在尝试为我的应用程序构建一个报告功能,每个报告本质上都是一个带有名称的活动记录关系/查询。我需要序列化这些关系,以便我可以保留它们并在以后获取它们。这可能吗?
否则我不得不求助于对关系生成的 sql 进行序列化,然后使用它进行查询。
我正在尝试为我的应用程序构建一个报告功能,每个报告本质上都是一个带有名称的活动记录关系/查询。我需要序列化这些关系,以便我可以保留它们并在以后获取它们。这可能吗?
否则我不得不求助于对关系生成的 sql 进行序列化,然后使用它进行查询。
我不确定这真的是一个很好的解决方案,但您可以将 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