Uso el ejemplo con Rails 3, pero creo que esto también se aplica a Rails 2.3.Rails, ¿por qué se une la matriz devuelve con valores no únicos?
Supongamos que tengo una ciudad modelo que tiene muchas ubicaciones. Intento encontrar ciudades que tengan ubicaciones.
I utilizar siguiente código:
City.joins(:locations)
Pero matriz de salida es:
=> [#<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">, #<City id: 5, name: "moscow", created_at: "2010-07-02 15:09:16", updated_at: "2010-07-02 15:09:16">]
longitud de la matriz es 4 (número de ubicaciones de Moscú).
¿En qué caso puede ser útil? ¿Para qué objetivos hay 4 copias de un objeto en output-array?
Puedo usar City.joins (: locations) .uniq, pero perdí agile of arel.
Tengo dos preguntas:
- Por qué une a los rendimientos de la matriz no singular?
- ¿Qué es preferible utilizar en lugar de uniones para este propósito?
¡Gracias! grupo es lo que necesito! ¿Pero por qué Rails no quiere agruparse solo? El objeto de raíles de salida es una matriz de ciudades sin ninguna ubicación. Y en mi humilde opinión no hay casos de uso para tal salida. – petRUShka
Gracias por la útil respuesta. Una pregunta: ¿City.x naturalmente no traería de vuelta a la ciudad sin la necesidad de la declaración seleccionada? –
@edebill ¿hay alguna manera de omitir este 'grupo ('cities.id')' en cada consulta? – asiniy