2016-06-27 16 views

risposta

3

Non so se c'è una funzione built-in per verificare la presenza di questo, ma si potrebbe scrivere il proprio così:

defmodule PreloadCheck do 
    def is_preloaded(model, assoc) do 
    case Map.get(model, assoc) do 
     %Ecto.Association.NotLoaded{} -> false 
     _ -> true 
    end 
    end 
end 

Qui assoc sarebbe l'atomo che rappresenta il nome dell'associazione.

L'utilizzo della corrispondenza del modello in case consente di verificare se l'associazione è stata caricata o se sta ancora restituendo una struttura Ecto.Association.NotLoaded.

+0

Grazie. Finisco per scrivere una funzione che verifica se l'associazione è una lista e la conteggio come caricata. Sto ancora sperando che ci sia qualcosa di funzione builtin che fa questo. –

+1

Sì, puoi usare 'Ecto.assoc_loaded?';) Restituirà un bool per caricato o meno. Non so esattamente per quanto tempo la funzione è disponibile, almeno per la versione 2.1.4 è disponibile. –

+0

Dove verrà scritta questa funzione e come influenzerà il modello? se puoi spiegare che sarà grandioso –

Problemi correlati