Sha256: c627d103dd7dd42f844e39bdd25858291e5ed942b9b87f830d0d2e8ce2cd53de
Contents?: true
Size: 1.42 KB
Versions: 4
Compression:
Stored size: 1.42 KB
Contents
class Block < ActiveRecord::Base translates :title, :content scope :in_page, lambda{ |page| { :joins => :page_cols, :conditions => {:page_cols => {:id => page.page_cols}}, :select => "DISTINCT `blocks`.*" # kill duplicates } } validates :title, :presence => true has_and_belongs_to_many :page_cols, :order => 'position' has_and_belongs_to_many :categories, :readonly => true, :join_table => 'categories_elements', :foreign_key => 'element_id', :association_foreign_key => 'category_id' before_destroy :check_has_no_single_key define_index do indexes single_key, :sortable => true end define_translated_index :title, :content def clone cloned = super cloned.translations = translations.clone unless translations.empty? %w(page_col_ids category_ids).each do |method| cloned.send("#{method}=",self.send(method)) end return cloned end def pages self.page_cols.map(&:page) end def linked_with?(page) self.pages.include?(page) end def link_with(page) page.blocks << self page.blocks.reset_positions end def unlink_with(page) page.blocks.delete self page.blocks.reset_positions end private # if the block contains a single_key, it can not be destroyed def check_has_no_single_key if !self.single_key.blank? errors.add(:the_block, :has_single_key) return false end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
forgeos_cms-1.9.4 | app/models/block.rb |
forgeos_cms-1.9.2 | app/models/block.rb |
forgeos_cms-1.9.1 | app/models/block.rb |
forgeos_cms-1.9.0 | app/models/block.rb |