mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-15 03:51:41 +00:00
no permitir artículos duplicados
This commit is contained in:
parent
365146ed59
commit
e3727eb6b2
2 changed files with 29 additions and 0 deletions
|
@ -267,6 +267,18 @@ class Post
|
||||||
return false if validate && !valid?
|
return false if validate && !valid?
|
||||||
# Salir si tenemos que cambiar el nombre del archivo y no pudimos
|
# Salir si tenemos que cambiar el nombre del archivo y no pudimos
|
||||||
return false if !new? && path.changed? && !update_path!
|
return false if !new? && path.changed? && !update_path!
|
||||||
|
|
||||||
|
# Si el archivo va a estar duplicado, agregar un número al slug
|
||||||
|
if new? && written?
|
||||||
|
original_slug = slug.value
|
||||||
|
count = 1
|
||||||
|
|
||||||
|
while written?
|
||||||
|
count += 1
|
||||||
|
slug.value = "#{original_slug}-#{count}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return false unless save_attributes!
|
return false unless save_attributes!
|
||||||
return false unless write
|
return false unless write
|
||||||
|
|
||||||
|
|
|
@ -181,4 +181,21 @@ class PostTest < ActiveSupport::TestCase
|
||||||
assert_equal title, post.content.value
|
assert_equal title, post.content.value
|
||||||
assert post.save
|
assert post.save
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'no se pueden repetir los nombres' do
|
||||||
|
title = SecureRandom.hex
|
||||||
|
post = @site.posts.build(title: title,
|
||||||
|
description: title,
|
||||||
|
content: title)
|
||||||
|
|
||||||
|
slug = post.slug.value
|
||||||
|
|
||||||
|
assert post.save
|
||||||
|
|
||||||
|
another_post = @site.posts.build(title: title, description: title, content: title)
|
||||||
|
|
||||||
|
assert_equal slug, another_post.slug.value
|
||||||
|
assert another_post.save
|
||||||
|
assert_not_equal slug, another_post.slug.value
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue