module Ecm::References class Reference < ActiveRecord::Base self.table_name = 'ecm_references_references' # acts as list acts_as_list :scope => :ecm_categories_category default_scope :order => 'ecm_categories_category_id ASC, position ASC' # acts as published include ActsAsPublished::ActiveRecord acts_as_published # associations belongs_to :category, :foreign_key => :ecm_categories_category_id has_many :attached_pictures, :as => :pictureable, :class_name => Ecm::Pictures::AttachedPicture, :inverse_of => :pictureable has_many :pictures, :through => :attached_pictures, :class_name => Ecm::Pictures::Picture accepts_nested_attributes_for :attached_pictures, :allow_destroy => true accepts_nested_attributes_for :pictures, :allow_destroy => true # attributes attr_accessible :attached_pictures_attributes, :category, :ecm_categories_category_id, :description, :markup_language, :name, :pictures_attributes # callbacks after_initialize :set_defaults # before_validation do # self.published = ["published"] # if @attributes.has_key?("published") # end # friendly id support extend FriendlyId friendly_id :name, :use => :slugged # markup support acts_as_markup :language => :variable, :columns => [ :description ] # validations validates :ecm_categories_category_id, :presence => true validates :markup_language, :presence => true, :inclusion => Ecm::References::Configuration.markup_languages.map(&:to_s) validates :name, :presence => true, :uniqueness => { :scope => [ :ecm_categories_category_id ] } def self.localized joins(:category).where(:ecm_references_categories => { :locale => I18n.locale }) end def self.with_public_visibility published.localized end def preview_picture pictures.first end def preview_picture_image_url(style = nil) preview_picture.image.url(style) if preview_picture.respond_to?(:image) && preview_picture.image.respond_to?(:url) end def to_s name end # def private def set_defaults if self.new_record? self.markup_language ||= Ecm::References::Configuration.default_markup_language self.published = Ecm::References::Configuration.new_references_published_by_default if self.published_at.nil? end end # def end # class Reference < ActiveRecord::Base end # module Ecm::References