require 'gollum-lib' class WikiPage < ApplicationRecord WIKI_PATH = Rails.root.join('wiki').to_s belongs_to :tag, optional: true belongs_to :created_user, class_name: 'User', foreign_key: 'created_user_id' belongs_to :updated_user, class_name: 'User', foreign_key: 'updated_user_id' validates :title, presence: true, length: { maximum: 255 }, uniqueness: true def markdown wiki = Gollum::Wiki.new(WIKI_PATH) page = wiki.page(title) page&.raw_data end def markdown= content wiki = Gollum::Wiki.new(WIKI_PATH) page = wiki.page(title) commit_info = { message: "Update #{ title }", name: current_user.id, email: 'dummy@example.com' } if page page.update(content, commit: commit_info) else wiki.write_page(title, :markdown, content, commit_info) end end end