class Site < ActiveRecord::Base belongs_to :owner, :class_name => 'User' has_many :memberships, :dependent => :destroy has_many :users, :through => :memberships # has_many :tags, :dependent => :destroy has_many :articles, :dependent => :destroy has_many :pages, :dependent => :destroy do def find_by_url(url = []) url = url.split('/').delete_if(&:blank?) if url.is_a? String page = where(:parent_id => nil).first url.each do |part| page = page.children.published.where(:permalink => part).first end page end end def homepage pages.root end end