From a8a123773ac5a7bd5b45347561b2553ba399cc93 Mon Sep 17 00:00:00 2001 From: Bear Su Date: Mon, 1 Jan 2024 10:25:33 +0800 Subject: [PATCH 1/2] fix(og): update og image --- .../2024-01-01-devise-gem-getting-start.md | 2 +- .../2024-01-01/devise-gem-getting-start.png | Bin 0 -> 41284 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 static/images/2024-01-01/devise-gem-getting-start.png diff --git a/content/posts/2024-01-01-devise-gem-getting-start.md b/content/posts/2024-01-01-devise-gem-getting-start.md index 0db41b90..d23d2ead 100644 --- a/content/posts/2024-01-01-devise-gem-getting-start.md +++ b/content/posts/2024-01-01-devise-gem-getting-start.md @@ -9,7 +9,7 @@ date: 2024-01-01T12:00:00+08:00 title: "Rails 使用者驗證:Devise Gem Getting Start" url: /2024/01/01/devise-gem/ images: - - /images/2024-01-01/devise-gem.png + - /images/2024-01-01/devise-gem-getting-start.png --- [Devise gem][Devise Gem] 是在 Rails 社群中受到廣泛使用於使用者驗證的 gem。我們可以使用 Devise 在 Rails 專案快速實現最基礎的使用者驗證功能,例如註冊、登入、以及忘記密碼等等。 diff --git a/static/images/2024-01-01/devise-gem-getting-start.png b/static/images/2024-01-01/devise-gem-getting-start.png new file mode 100644 index 0000000000000000000000000000000000000000..514fb0326f70cdbd4625e6b28b8cebcae74e6c90 GIT binary patch literal 41284 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 NrrL=k`6`ya{|E6&)2aXf literal 0 HcmV?d00001 From d2d0755bac510a78bbb4d6ab483c061c2200dc00 Mon Sep 17 00:00:00 2001 From: Bear Su Date: Mon, 1 Jan 2024 10:32:00 +0800 Subject: [PATCH 2/2] feat(post): publish at 0 clock --- content/posts/2024-01-01-devise-gem-getting-start.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/posts/2024-01-01-devise-gem-getting-start.md b/content/posts/2024-01-01-devise-gem-getting-start.md index d23d2ead..457fb23b 100644 --- a/content/posts/2024-01-01-devise-gem-getting-start.md +++ b/content/posts/2024-01-01-devise-gem-getting-start.md @@ -5,7 +5,7 @@ keywords: - rails - gem comments: true -date: 2024-01-01T12:00:00+08:00 +date: 2024-01-01T00:00:00+08:00 title: "Rails 使用者驗證:Devise Gem Getting Start" url: /2024/01/01/devise-gem/ images: