2010-09-27 21 views
16

Thông báo lỗi xác thực mặc định trong Rails 3.0 ở đâu? Tương đương với ActiveRecord :: Error.default_error_messages [: taken], ví dụ như thế nào? Tôi đã nhận được như xa như việc tìm kiếm rằng ActiveModel xử lý các lỗi hơn là ActiveRecord, nhưng tôi không thể tìm thấy các lỗi chính mình.Thông báo lỗi xác thực mặc định trong Rails 3.0 ở đâu?

+0

Trong khi điều này có thể không trả lời đầy đủ câu hỏi của bạn, nó cung cấp cho bạn cách tùy chỉnh thông báo lỗi xác thực (giả sử đó là những gì bạn đang cố gắng làm): http://stackoverflow.com/questions/808547/ full-custom-validation-error-message-with-rails – rogeriopvl

+0

Thực ra, tôi không cố gắng tùy chỉnh chúng mà chỉ để sử dụng chúng trong thử nghiệm, đảm bảo rằng các thông báo lỗi đúng được nâng lên. Tuy nhiên, liên kết bạn đã cung cấp rất hữu ích - có vẻ như nó phức tạp hơn và ít trực quan hơn để tạo các thư được tùy chỉnh hơn các phiên bản cũ hơn! –

Trả lời

22

http://github.com/rails/rails/blob/master/activemodel/lib/active_model/locale/en.yml

http://github.com/rails/rails/blob/master/activerecord/lib/active_record/locale/en.yml

: D

UPDATE:

Có lẽ bạn nên cố gắng thêm các thông báo lỗi tùy chỉnh của riêng bạn?

# de.yml 
activerecord: 
    errors: 
    messages: 
     taken: "ist bereits vergeben" 

# test_spec.rb 
... 
assert_equal(object.errors[field], I18n.t("activerecord.errors.messages.taken")) 
... 
+0

Cảm ơn bạn, đó là một thông tin hữu ích khác. Nhưng làm cách nào để truy cập thông tin trong chương trình Rails? Phải có một phương pháp trong ActiveModel :: Lỗi hoặc ở một nơi khác, không có ở đó? –

+0

Bạn muốn làm gì chính xác? – Lichtamberg

+0

Ví dụ, assert_equal (object.errors [field], ActiveRecord :: Error.default_error_messages [: taken]) để kiểm tra xem thông báo lỗi đúng đã được đưa ra chưa. Nó không thực tế quan trọng đối với tôi, tôi chỉ có thể sử dụng chữ văn bản, nhưng nó không có vẻ là cách "thuần khiết" để làm việc. –

Các vấn đề liên quan