Module: ActiveRecordExtension::ClassMethods
- Defined in:
- lib/active_record_extension.rb
Overview
add your static(class) methods here
Instance Method Summary collapse
- #belongs_to_field(field) ⇒ Object
- #belongs_to_field?(field) ⇒ Boolean
- #belongs_to_field_by_name(name) ⇒ Object
- #belongs_to_fields ⇒ Object
-
#many_to_many_associated_tables ⇒ Object
OData does not allow creating an entry for a table that is used in a many to many joining table.
- #many_to_many_associated_tables=(value) ⇒ Object
-
#odata_field(field, options) ⇒ Object
In some cases the odata field name is different than the database field name.
- #odata_field_value(crm_key) ⇒ Object
-
#odata_table_reference ⇒ Object
If odata refers to table differently than table name when using associations, you can use this method.
- #odata_table_reference=(value) ⇒ Object
Instance Method Details
#belongs_to_field(field) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/active_record_extension.rb', line 68 def belongs_to_field(field) @belongs_to_fields ||= belongs_to_fields matching_fields = @belongs_to_fields.select{|f| f.foreign_key == field} raise "Multiple matching foreign_keys. Only unique foreign keys allowed [#{field}]" if matching_fields.count > 1 matching_fields.first end |
#belongs_to_field?(field) ⇒ Boolean
63 64 65 66 |
# File 'lib/active_record_extension.rb', line 63 def belongs_to_field?(field) @belongs_to_fields ||= belongs_to_fields @belongs_to_fields.map(&:foreign_key).include?(field) end |
#belongs_to_field_by_name(name) ⇒ Object
75 76 77 78 |
# File 'lib/active_record_extension.rb', line 75 def belongs_to_field_by_name(name) @belongs_to_fields ||= belongs_to_fields @belongs_to_fields.select{|f| f.name.to_s == name}.first end |
#belongs_to_fields ⇒ Object
80 81 82 |
# File 'lib/active_record_extension.rb', line 80 def belongs_to_fields reflect_on_all_associations(:belongs_to) end |
#many_to_many_associated_tables ⇒ Object
OData does not allow creating an entry for a table that is used in a many to many joining table. You must associate tables together. If a table uses this field, it indicates its a joining many to many table. An array of the 2 associated tables, eg [Table1, Table2]
96 97 98 |
# File 'lib/active_record_extension.rb', line 96 def many_to_many_associated_tables @many_to_many_associated_tables end |
#many_to_many_associated_tables=(value) ⇒ Object
100 101 102 |
# File 'lib/active_record_extension.rb', line 100 def many_to_many_associated_tables=(value) @many_to_many_associated_tables = value end |
#odata_field(field, options) ⇒ Object
In some cases the odata field name is different than the database field name. This method is used for this mapping
105 106 107 108 |
# File 'lib/active_record_extension.rb', line 105 def odata_field(field, ) @odata_property_key ||= {} @odata_property_key[field] = [:crm_key] end |
#odata_field_value(crm_key) ⇒ Object
110 111 112 113 |
# File 'lib/active_record_extension.rb', line 110 def odata_field_value(crm_key) @odata_property_key ||= {} @odata_property_key[crm_key] end |
#odata_table_reference ⇒ Object
If odata refers to table differently than table name when using associations, you can use this method
85 86 87 |
# File 'lib/active_record_extension.rb', line 85 def odata_table_reference @odata_table_reference end |
#odata_table_reference=(value) ⇒ Object
89 90 91 |
# File 'lib/active_record_extension.rb', line 89 def odata_table_reference=(value) @odata_table_reference = value end |