16e9b8ca49
#282 #282 #282 #282 #282 #282 Co-authored-by: miteruzo <miteruzo@naver.com> Reviewed-on: #284
16 lines
413 B
Ruby
16 lines
413 B
Ruby
class WikiLine < ApplicationRecord
|
|
has_many :wiki_revision_lines, dependent: :restrict_with_exception
|
|
|
|
validates :sha256, presence: true, uniqueness: true, length: { is: 64 }
|
|
validates :body, presence: true
|
|
|
|
def self.upsert_by_body! body
|
|
sha = Digest::SHA256.hexdigest(body)
|
|
now = Time.current
|
|
|
|
upsert(sha256: sha, body:, created_at: now, updated_at: now)
|
|
|
|
find_by!(sha256: sha)
|
|
end
|
|
end
|