2015-08-16 16 views
5

Ecto può convalidare formato, inclusione, unicità e così via, ma non riesco a vedere come posso confermare la presenza? c'è un metodo per aggiungere un errore a un campo se è vuoto? Come validates_presence_of in RoR? Posso farlo manualmente, non è un problema, ma mi chiedo se esiste un metodo già esistente come validate_presence\3 o qualcosa del genere?Come convalidare la presenza nel framework Phoenix?

risposta

3

Basta usare l'annotatore required_fields nel modello.

@required_fields ~w(name email) 

Per un modello di cliente con un totale di 4 campi e 2 campi obbligatori come questo:

defmodule HelloPhoenix.Customer do 
    use HelloPhoenix.Web, :model 

    schema "customers" do 
    field :name, :string 
    field :email, :string 
    field :bio, :string 
    field :number_of_pets, :integer 

    timestamps 
    end 

    @required_fields ~w(name email) 
    @optional_fields ~w() 

    def changeset(model, params \\ :empty) do 
    model 
    |> cast(params, @required_fields, @optional_fields) 
    end 
end 

Phoenix convaliderà automaticamente la presenza dei campi richiesti e messaggi di errore display nella parte superiore della formare come di seguito:

enter image description here

+0

Come posso cambiare il messaggio di errore personalizzato? Se voglio mostrare "blah blah" invece di "non può essere vuoto" ... – JustMichael

+0

beh, quella sarebbe una domanda a parte! – emaillenin

+0

beh, facciamo una domanda a parte! Ci si va -> http://stackoverflow.com/questions/32032246/how-to-add-a-custom-error-message-for-a-required-field – JustMichael

Problemi correlati