Sha256: e582f4fbdcb8f331c966bb9364dea7c61aa9594b76e3b5a8588bdce33ef0be96
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
module ConstructorPages # Template model. Template allows assing different design for pages. # # Templates has many fields. # For example: # template "Product" should has fields like "price", "description", "size" etc. class Template < ActiveRecord::Base include TheSortableTree::Scopes validates_presence_of :name, :code_name validates_uniqueness_of :code_name validate :code_name_uniqueness default_scope -> { order :lft } has_many :pages, dependent: :destroy has_many :fields, dependent: :destroy acts_as_nested_set # Return child corresponding child_id or children first def child Template.find(child_id) if child_id end # Convert name to accusative def to_accusative self.name.mb_chars.downcase.to_s.accusative end private # Check if code_name is not available def code_name_uniqueness errors.add(:base, :code_name_already_in_use) unless Page.check_code_name(code_name) and check_code_name(code_name) end # Check if there is code_name in same branch def check_code_name(cname) [cname.pluralize, cname.singularize].each {|name| return false if root.descendants.map{|t| t.code_name unless t.code_name == cname}.include?(name)} true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
constructor-pages-1.0.0beta2 | app/models/constructor_pages/template.rb |