Class: SampleDetails
- Inherits:
-
Object
- Object
- SampleDetails
- Defined in:
- app/models/sample_details.rb
Defined Under Namespace
Classes: Collection
Class Method Summary collapse
-
.for(samples, detail_fields = []) ⇒ Object
Returns a SampleDetails::Collection object for the given samples (which should be a relation or list of AR Sample objects) optionally, if detail_fields are specified, only those details fields will be returned (expects a list of strings).
Class Method Details
.for(samples, detail_fields = []) ⇒ Object
Returns a SampleDetails::Collection object for the given samples (which should be a relation or list of AR Sample objects) optionally, if detail_fields are specified, only those details fields will be returned (expects a list of strings)
79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/models/sample_details.rb', line 79 def self.for(samples, detail_fields = []) fields = SampleDetailField.eager_load(:sample_detail_group).order(:order) values = SampleDetailValue.preload({:sample_detail_field => :sample_detail_group}).where(sample_id: samples) if detail_fields && !detail_fields.empty? fields = fields.where(name: detail_fields) values = values.where(sample_detail_field_id: fields) end Collection.new(samples, fields.map { |f| f.sample_detail_group }.uniq, fields, values) end |