Sha256: fe33400654255d0a8f94e50dd73504157bc0149a9e4c9500bcb3f8d8d5ea7eea
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
module PushType class Node < ActiveRecord::Base include PushType::Customizable include PushType::Nestable include PushType::Templatable include PushType::Unexposable include PushType::Publishable include PushType::Trashable include PushType::Presentable belongs_to :creator, class_name: 'PushType::User', optional: true belongs_to :updater, class_name: 'PushType::User', optional: true has_closure_tree name_column: 'slug', order: 'sort_order', dependent: :destroy validates :title, presence: true validates :slug, presence: true, uniqueness: { scope: :parent_id } def self.find_by_base64_id(secret) find Base64.urlsafe_decode64(secret) rescue ArgumentError raise ActiveRecord::RecordNotFound end def base64_id Base64.urlsafe_encode64 id.to_s end def permalink @permalink ||= self_and_ancestors.map(&:slug).reverse.join('/') end def orphan? parent && parent.trashed? end def trash! super self.descendants.update_all deleted_at: Time.zone.now end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
push_type_core-0.12.1 | app/models/push_type/node.rb |
push_type_core-0.12.0 | app/models/push_type/node.rb |
push_type_core-0.12.0.beta.1 | app/models/push_type/node.rb |