Class: ActiveRecord::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/oracle_enhanced_adapter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.ignore_table_columns(*args) ⇒ Object

Specify table columns which should be ignored by ActiveRecord, e.g.:

ignore_table_columns :attribute1, :attribute2


55
56
57
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 55

def self.ignore_table_columns(*args)
  connection.ignore_table_columns(table_name,*args)
end

.lob_columnsObject



102
103
104
105
106
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 102

def self.lob_columns
  columns.select do |column|
    column.respond_to?(:lob?) && column.lob?
  end
end

.set_boolean_columns(*args) ⇒ Object

Specify which table columns should be typecasted to boolean values true or false, e.g.:

set_boolean_columns :is_valid, :is_completed


76
77
78
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 76

def self.set_boolean_columns(*args)
  connection.set_type_for_columns(table_name,:boolean,*args)
end

.set_date_columns(*args) ⇒ Object

Specify which table columns should be typecasted to Date (without time), e.g.:

set_date_columns :created_on, :updated_on


62
63
64
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 62

def self.set_date_columns(*args)
  connection.set_type_for_columns(table_name,:date,*args)
end

.set_datetime_columns(*args) ⇒ Object

Specify which table columns should be typecasted to Time (or DateTime), e.g.:

set_datetime_columns :created_date, :updated_date


69
70
71
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 69

def self.set_datetime_columns(*args)
  connection.set_type_for_columns(table_name,:datetime,*args)
end

.set_integer_columns(*args) ⇒ Object

Specify which table columns should be typecasted to integer values. Might be useful to force NUMBER(1) column to be integer and not boolean, or force NUMBER column without scale to be retrieved as integer and not decimal. Example:

set_integer_columns :version_number, :object_identifier


85
86
87
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 85

def self.set_integer_columns(*args)
  connection.set_type_for_columns(table_name,:integer,*args)
end

.set_string_columns(*args) ⇒ Object

Specify which table columns should be typecasted to string values. Might be useful to specify that columns should be string even if its name matches boolean column criteria.

set_string_columns :active_flag


93
94
95
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 93

def self.set_string_columns(*args)
  connection.set_type_for_columns(table_name,:string,*args)
end

.table_commentObject

Get table comment from schema definition.



98
99
100
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 98

def self.table_comment
  connection.table_comment(self.table_name)
end

.virtual_columnsObject



108
109
110
111
112
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 108

def self.virtual_columns
  columns.select do |column|
    column.respond_to?(:virtual?) && column.virtual?
  end
end

Instance Method Details

#arel_attributes_with_values(attribute_names) ⇒ Object



114
115
116
117
# File 'lib/active_record/connection_adapters/oracle_enhanced_adapter.rb', line 114

def arel_attributes_with_values(attribute_names)
  virtual_column_names = self.class.virtual_columns.map(&:name)
  super(attribute_names - virtual_column_names)
end