Obstawiam, że nie masz dodanej kolumny slug w tabeli posts.
[quote=gotar]nie ma co koła na nowo wymyślać i uproszczać:
https://www.ruby-toolbox.com/categories/rails_permalinks___slugs[/quote]
nie było to chyba takie bardzo trudne, a chyba dość trudne testy przechodzi tak jakbym chciał:)
def createSlug
@slug = title.strip.gsub(' ', '-').gsub(/[^\w-]/, '').gsub(/\-{1,}/, '-').gsub(/^\-|\-$/, '')
end
a test
[code=ruby] test “create slug based on title” do
post = Post.new
post.body = ‘some body’
post.title = ‘My title’
post.createSlug
assert_equal ‘My-title’, post.slug
post.title = '&&&&&--&&My more completcated 7878977897989 title^%$#@!-*&'
post.createSlug
assert_equal 'My-more-completcated-7878977897989-title', post.slug
end[/code]
co mnie (póki co) zadowala
“Pola w rekordzie oddzielone są znakiem „pałki” ( | )” - dokumentacja jednego z banków."
[quote=kabanek]nie było to chyba takie bardzo trudne, a chyba dość trudne testy przechodzi tak jakbym chciał:)
[code=ruby] test “create slug based on title” do
post = Post.new
post.body = ‘some body’
post.title = ‘My title’
post.createSlug
assert_equal ‘My-title’, post.slug
post.title = '&&&&&--&&My more completcated 7878977897989 title^%$#@!-*&'
post.createSlug
assert_equal 'My-more-completcated-7878977897989-title', post.slug
end[/code]
co mnie (póki co) zadowala :)[/quote]
rozbij to na kilka mniejszych testów gdzie sprawdzasz różne case’y, a nie jeden wielki - jeden assert na jeden test (czasem można od tego odejść moim zdaniem, ale na pewno nie w unit testach). No i jak testujesz slug to testuj slug (zostaw body w spokoju).
Panie, to nie Java #create_slug a nie #createSlug
a to taki stary nawyk konwencji pisania
a testy napiszę od nowa, chciałem tylko się pochwalić, że coś spłodziłem samemu