forgeplus/app/models/page.rb

61 lines
1.4 KiB
Ruby

# == Schema Information
#
# Table name: pages
#
# id :integer not null, primary key
# user_id :integer not null
# project_id :integer not null
# identifier :string(255)
# site_name :string(255)
# language_frame :integer default("0")
# theme :string(255)
# last_build_at :datetime
# state :boolean default("1")
# state_description :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# last_build_info :text(65535)
# build_state :boolean
#
# Indexes
#
# index_pages_on_project_id (project_id)
# index_pages_on_user_id (user_id)
#
class Page < ApplicationRecord
belongs_to :user
belongs_to :project
# language_frame 前端语言框架
enum language_frame: { hugo: 0, jekyll: 1, hexo: 2}
after_create do
PageService.genernate_user(user_id)
end
before_destroy do
PageService.close_site(user_id, identifier)
end
before_save do
if state_changed? && state == false
PageService.close_site(user_id, identifier)
end
end
def deploy_page(branch)
PageService.deploy_page(branch,self.id)
end
def url
@deploy_domain = EduSetting.find_by_name("site_page_deploy_domain").try(:value)
"http://#{identifier}"
end
def build_script_path
"#{language_frame}_build"
end
end