Method: JunglePath::Controller::Base#select

Defined in:
lib/jungle_path/controller/base.rb

#select(include_secure_columns: false, use_only_pk_columns_to_select_if_available: true) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/jungle_path/controller/base.rb', line 19

def select(include_secure_columns: false, use_only_pk_columns_to_select_if_available: true)
  @db.transaction do
    if use_only_pk_columns_to_select_if_available and self.class.by_primary_key?(@params, @table_class.primary_key_columns)
      #puts "a"
      pk_hash = @table_class.new(@params)._primary_key
      model = @table_class.new(pk_hash)
      result = @db.select._model(model) # todo: use _model here instead?
    elsif self.class.by_primary_key?(@params, @table_class.primary_key_columns)
      #puts "b"
      result = @db.select._model_by_any(@table_class.new(@params))
    else
      #puts "c"
      result = @db.select._models(@table_class.new(@params))
    end
    result = self.class.handle_include_secure_columns_flag(result, include_secure_columns, @table_class)
  end
end