2012-03-20 17 views
10

Mam aplikację do wysyłania obrazów działającą pod kontrolą operatora, która ogranicza użytkownika przed przesyłaniem obrazu tylko z żądanych rozszerzeń 'jpg, jpeg, png' Wprowadziłem sprawdzanie poprawności dla carrierwave w moim programie do przesyłania plików, definiując jakoUstawianie niestandardowego komunikatu o błędzie z CarrierWave

def extension_white_list 
    %w(jpg jpeg png) 
end 

teraz ktoś próbuje przesłać obraz mający rozszerzenie inny od pożądanego rozszerzenia (Wzmianka powyżej) spowoduje błędów walidacji

Chcę dostosować komunikat o błędzie walidacji

prawym N ow Komunikat o błędzie jest przedstawiany jako

You are not allowed to upload "" files, allowed types: ["jpg","jpeg","png"] 

Czy ktoś pomoże mi znaleźć ten link gdzie faceci wspominając, jak to osiągnąć

ale jakiś problem

1. I18n support I dont require to translate the error message using I18n 

2. The 'Key' to be used I not sure which key to used in YAML for 
    not matching extension whitelist error message (e.g) carrierwave_processing_error key if error is for processing failure 

Proszę podać mi odpowiedzieć w perspektywie CarrierWave i proszę nie prosić mnie o napisanie oddzielnego zestawu do sprawdzania poprawności dla dopasowania do rozszerzenia

Odpowiedz

2

zdefiniować parę wartości klucza w en.yml

en: 
    errors: 
    messages: 
     extension_white_list_error: 'My Custom Message' 

Jeśli uległa zmianie w przypadku ostatnich wersji. Więc spróbuj jak poniżej czy powyżej odpowiedź nie działa:

en: 
    errors: 
    messages: 
     extension_whitelist_error: 'My Custom Message' 

i niech CarrierWave zrobić reszta

+0

hi @Viren próbuję swoją odpowiedź, ale nie dla mnie :(utworzyć nowe pytanie tutaj: http://stackoverflow.com/questions/19068821/custom-error-message-for -carrierwave-dont-work, każdy pomysł proszę? Używam szyn 4 – medBo

1

z jakiegoś powodu mój ActiveModel nie zawierał modułu sprawdzania poprawności z ca rrierwave po wywołaniu mount_uploader. Musiałem wykonać include CarrierWave::Validations::ActiveModel w moim modelu, aby uzyskać weryfikator poprawności.

6

Jeśli ktoś kończy tutaj w 2016 i zastanawia się, dlaczego poprawne odpowiedzi znalezione na tej stronie lub gdziekolwiek indziej w Internecie nie działają, może to być spowodowane tym. Przynajmniej było w moim przypadku:

Rename extension_white_list ~>extension_whitelist

rzeczą łatwą do pominięcia, gdy tylko kopiowanie rozwiązań.

https://github.com/carrierwaveuploader/carrierwave/commit/06003a5044190f93d07d958b6ca9fd6f6f8fbdb2

+0

@mizumix Świetne. – Viren

Powiązane problemy