Preguntas etiquetadas con arel

5
Rieles donde condición usando NO NIL
Usando el estilo de los rieles 3, ¿cómo escribiría lo contrario de: Foo.includes(:bar).where(:bars=>{:id=>nil}) Quiero encontrar dónde la identificación NO es nula. Lo intenté: Foo.includes(:bar).where(:bars=>{:id=>!nil}).to_sql Pero eso vuelve: => "SELECT \"foos\".* FROM \"foos\" WHERE (\"bars\".\"id\" = 1)" Eso definitivamente no es lo que necesito, y casi parece un error en ARel.


8
Combina dos objetos ActiveRecord :: Relation
Supongamos que tengo los siguientes dos objetos: first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation last_name_relation = User.where(:last_name => 'Fünke') # ActiveRecord::Relation ¿Es posible combinar las dos relaciones para producir un ActiveRecord::Relationobjeto que contenga ambas condiciones? Nota: Soy consciente de que puedo encadenar las rutas para obtener este comportamiento, lo que …

3
¿Cómo hacer una consulta LIKE en Arel y Rails?
Quiero hacer algo como: SELECT * FROM USER WHERE NAME LIKE '%Smith%'; Mi intento en Arel: # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql Sin embargo, esto se convierte en: SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; Arel envuelve correctamente la cadena de consulta 'Smith', pero debido a que …

4
¿Qué es exactamente Arel en Rails 3.0?
Entiendo que es un reemplazo de ActiveRecord y que usa objetos en lugar de consultas. Pero... porque es esto mejor ¿Será "más fácil" crear objetos / consultas? ¿conducirá a consultas SQL más eficientes? ¿Será compatible con las principales bases de datos? - Asumo que lo hará. ¿Será más fácil / …

5
Subconsultas en activerecord
Con SQL puedo hacer fácilmente subconsultas como esta User.where(:id => Account.where(..).select(:user_id)) Esto produce: SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..) ¿Cómo puedo hacer esto usando 3 activerecord / arel / meta_where de rails? Necesito / quiero subconsultas reales, sin soluciones ruby ​​(usando varias consultas).
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.