2013-06-17 2 views
1

내 응용 프로그램에 대한보고 기능을 작성하려고하는데 각 보고서는 본질적으로 활성 레코드 관계/이름을 가진 쿼리입니다. 나는이 관계를 연재해야만 내가 그들을 유지하고 나중에 가져올 수있다. 이것이 가능한가?저장을 위해 ActiveRecord :: Relation 객체를 직렬화합니다.

그렇지 않으면 관계에 의해 생성 된 SQL을 serialize하고 쿼리를 사용하여 해결해야합니다.

답변

2

나는 정말 좋은 솔루션입니다 확실하지 않다,하지만 당신은 문자열로 AREL을 저장 한 다음 그런 식으로 평가할 수 :

예를 들어, 당신은

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 
Bid.first을 저장할
관련 문제