editar 2
Si se encuentra con esto, verifique ambas respuestas, ya que ahora usaría pluck para esto
Tengo un conjunto de datos personalizado bastante grande que me gustaría volver para que se repita como json. Una parte es:
l=Location.find(row.id)
tmp[row.id]=l
pero me gustaría hacer algo como:
l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l
pero esto no parece funcionar. ¿Cómo puedo hacer que esto funcione?
gracias
editar 1
alternativamente, ¿hay alguna manera de que pueda pasar una matriz de solo los atributos que quiero incluir?
:limit
debe hacer esto, o:first
o:last
o lo que sea, dependiendo de lo que desee. El documento de referencia al que vinculé le dirá cómo hacer todo eso.arrancar (nombre_columna)
Este método está diseñado para realizar la selección mediante una sola columna como consulta SQL directa. Devuelve Matriz con valores del nombre de columna especificado. Los valores tienen el mismo tipo de datos que la columna.
Ejemplos:
Person.pluck(:id) # SELECT people.id FROM people Person.uniq.pluck(:role) # SELECT DISTINCT role FROM people Person.where(:confirmed => true).limit(5).pluck(:id)
ver http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck
Sus rieles introducidos 3.2 en adelante y acepta solo una columna. En rails 4, acepta múltiples columnas
fuente
Location.select([:name, :website, :city])
si le pasa una matrizMi respuesta llega bastante tarde porque soy un desarrollador bastante nuevo. Esto es lo que puedes hacer:
Location.select(:name, :website, :city).find(row.id)
Por cierto, esto es Rails 4
fuente