次の構文を使用すると、検証に問題が発生します(失敗はありません)。
validates :title, uniqueness: true
ただし、これに変更すると失敗します。
validates :title, uniqueness: {message: 'Title must be unique'}
完全性のテストは次のとおりです。
test "product is not valid without a unique title " do
product = Product.new( title: products(:ruby).title,
description: "yyy",
price: 1,
image_url: "fred.gif" )
assert !product.save
assert_equal "has already been taken", product.errors['title'].join('; ')
end
Ruby製品などの本のタイトルを追加するフィクスチャがあります。
私が理解しているように、2つの検証は同じである必要があり、1つだけがカスタムエラーメッセージを表示します。これは、カスタムメッセージを使用するときに発生するエラーです。
1)失敗:test_product_is_not_valid_without_a_unique_title_(ProductTest)<"すでに取得済み">が予想されましたが、<"タイトルは一意である必要があります">。
よろしくお願いします。