Che cosa potrebbe essere questo: Nuovo linguaggio di query chainable Active Record costruito sulla cima di algebra relazionale?
-
18-09-2019 - |
Domanda
ho visto questo su un blog oggi , e ho pensato, finalmente! Rails avranno qualcosa di simile a HQL o < a href = "http://en.wikipedia.org/wiki/Language_Integrated_Query" rel = "nofollow noreferrer"> Linq . Um, oppure no. Non sono riuscito a trovare nulla di questo.
Quello che voglio davvero sapere: sarò in grado di dimenticare ciò che i tavoli sono chiamate e utilizzare solo i nomi degli oggetti? Posso finalmente dimentico unirsi sintassi? Mi piacerebbe poterlo fare prima di iniziare dimenticando tutto il resto (obiettivi di vita).
Soluzione
Per quanto ho capito, questo significa che è possibile scrivere le vostre query complesse non come
Object.find(:all, :conditions = > { :limit => 10, :offset => 5 }
, ma il modo più leggibile
Object.all.limit(10).offset(5)
Altri suggerimenti
query chainable con valutazione pigra e la sintassi AREL:
Questo consente di scrivere vari ambiti che rappresentano le condizioni e poi mescolare e abbinarli e concatenare ... nella conoscenza del la query non verrà effettivamente ottenere eseguito fino a quando è necessaria l'uscita ( 'valutazione pigra').
La sintassi di AREL è molto più vicini alla sintassi SQL standard invece della sintassi delle precedenti guide 'così è più facile da usare e riconoscere e mantenere per coloro famiiar con SQL.
Si può leggere di più su di esso qui . Io non sono terribilmente familiarità con LINQ, ma credo che LINQ è in qualche modo simile all'interfaccia query utilizzata da ORM di Django. In ogni caso, il succo è che l'interfaccia query in Active Record è più simile a quella di Django che era prima. Un sacco di metodi di query "di basso livello" più anziani sono deprecato e sarà rimosso nelle versioni successive.