Sha256: 97a07f36f1850005f00c968da1dbcf0fb50aef2a0926b475b0e88f5d63d4ff22
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module RademadeAdmin module Search class QueryAdapter def initialize(model) @model = model end def apply_conditions(search_conditions, is_related_list) # todo something with is_related_list @params = search_conditions.params @result = is_related_list ? related_base_condition : base_condition search_conditions.conditions.each do |query_part, values| @result = self.send(query_part, values) unless values.nil? end @result end protected def base_condition @model.unscoped end def related_base_condition parent_model = @params[:parent].constantize parent_id = @params[:parent_id] model_related_name = @model.to_s.demodulize.pluralize.downcase.to_sym parent_model.find(parent_id).send(model_related_name).unscoped end def where(where_conditions) @result end def order(order_conditions) @result end def page(page_condition) @result.page(page_condition) end def per_page(per_page_condition) @result.per(per_page_condition) end def limit(limit_condition) @result.limit(limit_condition) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rademade_admin-0.0.1 | app/services/search/query_adapter/abstract.rb |