Tengo un objeto en Rails que tiene los atributos A, B, C, D y E. Al pasar este objeto de vuelta al lado del cliente a través de un objeto JSON, cómo ¿Puedo decirle al controlador de rieles que solo incluya los atributos A y D en el objeto JSON?Especificación de atributos de un objeto Rails pasado a un objeto JSON
Dentro de mi controlador de Usuarios, mi código es el siguiente: trabaja
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
Este código, sin embargo, el objeto JSON que se devuelve contiene todos los atributos del objeto @user. ¿Cómo puedo limitar los atributos que están incluidos en el objeto JSON antes de que se envíe algo al cliente?
ACTUALIZACIÓN: lucapette proporciona algunos buenos antecedentes sobre lo que está sucediendo detrás de las escenas. Puesto que hay momentos en los que probablemente me quiero todos los atributos devueltos, terminé usando el siguiente código:
format.json { render :json => @user.to_json(:only => ["id"])}
Gracias, lucapette. Después de leer su respuesta, investigué los métodos to_json y as_json. Luego, modifiqué mi código de la siguiente manera: format.json {render: json => @ user.to_json (: only => ["id"])}. Parece que debe haber algún código superfluo pero no pude encontrar otra forma de hacerlo funcionar. – Vee
sí, también puede usar las opciones. Funciona bien de esa manera también. Realmente depende de la situación que tengas que enfrentar. – lucapette