Add updated_at to pages

This commit is contained in:
2024-03-03 20:39:23 +11:00
parent 413f2e2b3e
commit 4277bde352
3 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# frozen_string_literal: true
ROM::SQL.migration do
up do
execute <<-SQL
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = (now() at time zone 'utc');
RETURN NEW;
END;
$$ language 'plpgsql';
SQL
alter_table :pages do
add_column :updated_at, :timestamp
end
run <<-SQL
CREATE TRIGGER update_pages_updated_at BEFORE UPDATE
ON pages FOR EACH ROW EXECUTE PROCEDURE
update_updated_at_column();
SQL
end
down do
execute("DROP FUNCTION IF EXISTS update_updated_at_column();")
run <<-SQL
DROP TRIGGER IF EXISTS update_pages_updated_at ON pages;
SQL
alter_table :pages do
drop_column :updated_at
end
end
end

View File

@@ -5,4 +5,6 @@ article class="mb-12 prose dark:prose-invert max-w-prose mx-auto text-gray-800 d
h1= page_name
== page_content
- if page_updated_at
="Last updated: #{page_updated_at}"
div class="max-w-screen-md mx-auto border-t border-solid border-gray-200 dark:border-gray-600"

View File

@@ -12,6 +12,10 @@ module Main
page.name
end
expose :page_updated_at do |page|
page.updated_at&.strftime("%m/%d/%Y")
end
private_expose :page do |slug:|
page_repo.fetch!(slug: slug)
end