1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 08:46:41 +01:00

Fix #14: Make uniqueness check among other problems

This commit is contained in:
Philipp Fischbeck 2015-02-12 16:31:52 +01:00
parent 0e9a1ce617
commit c124808ffe
2 changed files with 19 additions and 1 deletions

View File

@ -2,7 +2,16 @@ class Translation < ActiveRecord::Base
belongs_to :problem, inverse_of: :translations
validates :title, :content, :problem_id, presence: true
validates :title, uniqueness: true
validate :title_is_unique_among_other_problems
self.per_page = 50
def title_is_unique_among_other_problems
Problem.where.not(id: problem_id).each do |problem|
if problem.is_translated? and problem.title == title
errors.add(:title, :taken)
break
end
end
end
end

View File

@ -20,6 +20,15 @@ class TranslationTest < ActiveSupport::TestCase
assert_not translation.save
end
test "should save translation with duplicate title of translation for same problem" do
translation = Translation.new(
title: translations(:translation_one).title,
content: 'This is some content',
problem_id: 1
)
assert translation.save
end
test "should save correct translation" do
translation = Translation.new(
title: 'A unique title',