Class: CustomFieldPair
- Inherits:
-
CustomField
- Object
- ActiveRecord::Base
- Field
- CustomField
- CustomFieldPair
- Defined in:
- app/models/fields/custom_field_pair.rb
Overview
Copyright © 2008-2013 Michael Dvorkin and contributors.
Fat Free CRM is freely distributable under the terms of MIT license. See MIT-LICENSE file or www.opensource.org/licenses/mit-license.php
Direct Known Subclasses
Constant Summary
Constants inherited from CustomField
CustomField::SAFE_DB_TRANSITIONS
Constants inherited from Field
Class Method Summary collapse
-
.create_pair(params) ⇒ Object
Helper to create a pair.
-
.update_pair(params) ⇒ Object
Helper to update a pair.
Instance Method Summary collapse
-
#paired_with ⇒ Object
Returns the field that this field is paired with ——————————————————————————.
Methods inherited from CustomField
#available_as, #custom_validator
Methods inherited from Field
#collection_string, #collection_string=, #column_type, field_types, #input_options, lookup_class, register, #render, #render_value
Class Method Details
.create_pair(params) ⇒ Object
Helper to create a pair. Used in fields_controller
13 14 15 16 17 18 19 20 21 22 |
# File 'app/models/fields/custom_field_pair.rb', line 13 def self.create_pair(params) fields = params['field'] as = params['field']['as'] pair = params.delete('pair') base_params = fields.delete_if { |k, _v| !%w[field_group_id label as].include?(k) } klass = ("custom_field_" + as.gsub('pair', '_pair')).classify.constantize field1 = klass.create(base_params.merge(pair['0'])) field2 = klass.create(base_params.merge(pair['1']).merge('pair_id' => field1.id, 'required' => field1.required, 'disabled' => field1.disabled)) [field1, field2] end |
.update_pair(params) ⇒ Object
Helper to update a pair. Used in fields_controller
26 27 28 29 30 31 32 33 34 35 |
# File 'app/models/fields/custom_field_pair.rb', line 26 def self.update_pair(params) fields = params['field'] pair = params.delete('pair') base_params = fields.delete_if { |k, _v| !%w[field_group_id label as].include?(k) } field1 = CustomFieldPair.find(params['id']) field1.update(base_params.merge(pair['0'])) field2 = field1.paired_with field2.update(base_params.merge(pair['1']).merge('required' => field1.required, 'disabled' => field1.disabled)) [field1, field2] end |
Instance Method Details
#paired_with ⇒ Object
Returns the field that this field is paired with
39 40 41 |
# File 'app/models/fields/custom_field_pair.rb', line 39 def paired_with pair || CustomFieldPair.where(pair_id: id).first end |