Class: PromoBlock
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- PromoBlock
- Includes:
- Checkable, RequiredUniqueSlug, Toggleable
- Defined in:
- app/models/promo_block.rb
Constant Summary collapse
- DESCRIPTION_LIMIT =
250
- NAME_LIMIT =
50
- SLUG_LIMIT =
50
- SLUG_PATTERN =
/\A[a-z0-9][-_a-z0-9]*[a-z0-9]\z/.freeze
- SLUG_PATTERN_HTML =
'^[a-zA-Z0-9][-_a-zA-Z0-9]*[a-zA-Z0-9]$'
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.entity_parameters ⇒ Object
36 37 38 |
# File 'app/models/promo_block.rb', line 36 def self.entity_parameters %i[description language_id name slug visible] end |
.localized_block(slug, language_code) ⇒ Object
30 31 32 33 34 |
# File 'app/models/promo_block.rb', line 30 def self.localized_block(slug, language_code) language = Language.find_by(code: language_code) criteria = { visible: true, slug: slug } find_by(criteria.merge(language: language)) || find_by(criteria) end |
Instance Method Details
#editable_by?(user) ⇒ Boolean
41 42 43 |
# File 'app/models/promo_block.rb', line 41 def editable_by?(user) UserPrivilege.user_has_privilege?(user, :promo_manager) end |
#item_for_visitors ⇒ PromoItem
46 47 48 |
# File 'app/models/promo_block.rb', line 46 def item_for_visitors promo_items.list_for_visitors.order('random()').first end |