2015-08-16 12 views

risposta

7

Il messaggio di errore "can't be blank" è hardcoded in Ecto al momento. Tuttavia, è possibile sostituire questo messaggio di errore facendo:

def changeset(model, params \\ :empty) do 
    model 
    |> cast(params, @required_fields, @optional_fields) 
    |> required_error_messages("no way it's empty") 
end 

def required_error_messages(changeset, new_error_message) do 
    update_in changeset.errors, &Enum.map(&1, fn 
    {key, "can't be blank"} -> {key, new_error_message} 
    {_key, _error} = tuple -> tuple 
    end) 
end 

Sperare che aiuti!

+0

Peccato che è codificato :(La maggior parte delle persone probabilmente piacerebbe cambiarlo – JustMichael

+0

Hai ragione è andato avanti e ha aggiunto un problema da https Ecto.: //github.com/elixir-lang/ecto/issues/884 quindi aggiungono un modo per supportarlo – Gjaldon

+0

Per ora questa è la strada da percorrere finché il sistema I18n non funziona –

4

normalmente personalizzare in questo modo:

validate_required(changeset, [:email], message: "Email cannot be blank.") 
+0

Non è stato possibile tornare nel giorno. Questa è la strada da percorrere. – JustMichael

Problemi correlati