Моя модель поста имеет атрибут последовательности, который я хочу убедиться, что численно больше 0:
class Post < ActiveRecord::Base
validates :sequence, :presence => true,
:uniqueness => true,
:numericality => { :greater_than => 0 }
Отлично. Сейчас я пытаюсь выполнить следующий тестовый тест.
test "post is not valid if sequence is negative" do
post = Post.new( :title => "Unique Title",
:description => "Some text",
:sequence => -1)
assert !post.save
assert_equal I18n.translate('activerecord.errors.messages.greater_than'),
post.errors[:sequence].join('; ')
end
Но с этим выводом ничего не получится:
1) Failure:
test_post_is_not_valid_if_sequence_is_negative(PostTest) [/test/unit/post_test.rb:46]:
<"translation missing: en.activerecord.errors.messages.numericality.greater_than"> expected but was
<"must be greater than 0">.
Очевидно, что rails не нравится следующая строка 'activerecord.errors.messages.greater_than'
Так, какой аргумент мне нужно передать метод I18n.translate , чтобы проверить, что последовательность больше 0?
PS:
Я прочитал раздел под названием 5.1.2 Интерполяция сообщений об ошибках на этой странице и подумал, что мой код будет работать, но, очевидно, я ошибся.