acts_as_response.rb 470 Bytes
module Surveyable
  module ActsAsResponse
    extend ActiveSupport::Concern
    included do
      has_many :answers, as: :response
      def survey
        self.send(survey_relationship)
      end
    end
    module ClassMethods
      def acts_as_response(survey_relationship, options = {})
        cattr_accessor :survey
        self.survey_relationship = survey_relationship.to_s
      end
    end
  end
end
ActiveRecord::Base.send :include, Surveyable::ActsAsResponse