Class: ConstructorPages::Field
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ConstructorPages::Field
- Includes:
- CodeNameUniq
- Defined in:
- app/models/constructor_pages/field.rb
Overview
Field model. Fields allows to add custom fields for template.
Each field has type of value such as float, integer, string…
Constant Summary collapse
- TYPES =
Array of available field types
%w{string integer float boolean text date html image}
Instance Method Summary collapse
-
#create_type_object(page) ⇒ Object
Create object of type_value by page.
-
#find_type_object(page) ⇒ Object
Return object of type_value by page.
-
#get_value_for(page) ⇒ Object
Get value from type_field for specified page.
-
#remove_type_object(page) ⇒ Object
Remove all type_fields values for specified page.
-
#set_value_for(page, value) ⇒ Object
Set value type_field for specified page.
-
#type_class ⇒ Object
Return constant of model type_value.
Methods included from CodeNameUniq
Instance Method Details
#create_type_object(page) ⇒ Object
Create object of type_value by page
42 |
# File 'app/models/constructor_pages/field.rb', line 42 def create_type_object(page); type_class.create(field_id: id, page_id: page.id) end |
#find_type_object(page) ⇒ Object
Return object of type_value by page
39 |
# File 'app/models/constructor_pages/field.rb', line 39 def find_type_object(page); type_class.where(field_id: id, page_id: page.id).first end |
#get_value_for(page) ⇒ Object
Get value from type_field for specified page
48 49 50 51 |
# File 'app/models/constructor_pages/field.rb', line 48 def get_value_for(page) _type_object = find_type_object(page) _type_object ? _type_object.value : nil end |
#remove_type_object(page) ⇒ Object
Remove all type_fields values for specified page
45 |
# File 'app/models/constructor_pages/field.rb', line 45 def remove_type_object(page); find_type_object(page).destroy end |
#set_value_for(page, value) ⇒ Object
Set value type_field for specified page
54 55 56 57 58 59 60 61 |
# File 'app/models/constructor_pages/field.rb', line 54 def set_value_for(page, value) _type_object = find_type_object(page) if _type_object _type_object.value = value _type_object.save! end end |
#type_class ⇒ Object
Return constant of model type_value
36 |
# File 'app/models/constructor_pages/field.rb', line 36 def type_class; "constructor_pages/types/#{type_value}_type".classify.constantize end |