O que pode ser isso: Nova linguagem de consulta chainable Active Record construída em cima de álgebra relacional?

StackOverflow https://stackoverflow.com/questions/2209108

Pergunta

Eu vi esse em um blog hoje , e eu pensei, finalmente! Rails terá algo como HQL ou < a href = "http://en.wikipedia.org/wiki/Language_Integrated_Query" rel = "nofollow noreferrer"> Linq . Um, ou não. Eu não consegui encontrar nada sobre isso.

O que eu realmente quero saber: eu serei capaz de esquecer o que as tabelas são chamadas e usar os nomes de objectos única? Finalmente posso esquecer a sintaxe de associação? Eu gostaria de fazer isso antes de eu começar a esquecer tudo o resto (objetivos de vida).

Foi útil?

Solução

Tanto quanto eu entendo, isso significa que você pode escrever suas consultas complexas não como

Object.find(:all, :conditions = > { :limit => 10, :offset => 5 }

mas forma mais legível

Object.all.limit(10).offset(5)

Outras dicas

consultas chainable com avaliação preguiçosa e a sintaxe AREL:

Isso permite que você escrever vários escopos representando condições e, em seguida, misturar e combinar-los e encadeá-los juntos ... no conhecimento da consulta não vai começar realmente executado até que a saída é necessário ( 'avaliação preguiçosa').

A sintaxe da AREL é muito mais perto de sintaxe SQL padrão em vez da sintaxe dos trilhos 'anteriores por isso é mais fácil de usar e reconhecer e manter para aqueles famiiar com SQL.

Você pode ler mais sobre isso aqui . Eu não sou terrivelmente familiar com o LINQ, mas eu acredito que LINQ é um pouco semelhante à interface de consulta usada por ORM do Django. De qualquer forma, a essência é que a interface de consulta no Active Record é mais parecida com a de Django que era antes. Muitos dos métodos de consulta mais velhos "de baixo nível" estão obsoletos e serão removidos em versões posteriores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top