Class: DcBigTable
- Inherits:
-
Object
- Object
- DcBigTable
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- app/models/dc_big_table.rb
Overview
Schema information
Collection name: dc_big_table : Big Table
_id BSON::ObjectId _id
created_at Time created_at
updated_at Time updated_at
key String Key (ident) used to retrieve key/values
description String description
site_id BSON::ObjectId Data will be used only for defined site. If empty, then it is default for all sites in database.
active Mongoid::Boolean This key is active
created_by BSON::ObjectId created_by
updated_by BSON::ObjectId updated_by
dc_big_table_values Embedded:DcBigTableValue Values defined by this key
Big table is meant to be a common space for defining default choices for select fields on forms. Documents are organized as key-value pair with the difference that values for the key can be defined for every site and can also be localized.
Usage (as used in forms):
In the example administrator may help user by providing values that can be used on DcAd document position field by defining them in ads-position key of big table. Example is from dc_ads.yml form.
10:
name: position
type: text_with_select
eval: dc_big_table 'ads-positions'
html:
size: 20
dc_big_table collection embeds many DcBigTableValue documents.
Class Method Summary collapse
-
.choices4(key, site = nil, locale = nil) ⇒ Object
Will return possible choices for specified key prepared for usega in select input field.
Class Method Details
.choices4(key, site = nil, locale = nil) ⇒ Object
Will return possible choices for specified key prepared for usega in select input field.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'app/models/dc_big_table.rb', line 81 def self.choices4(key, site = nil, locale = nil) result = [] choices = find_by(key: key, site: site) choices = find_by(key: key, site: nil) if site && choices.nil? if choices choices.dc_big_table_values.each do |choice| description = choice.description if locale desc = choice.find_by('dc_big_table_values.locale' => locale) description = desc.value if desc end result << [description, choice.value] end end # Error if empty result = [[I18n.t('drgcms.error'),I18n.t('drgcms.error')]] if result.size == 0 result end |