es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Solicitud GET para mostrar en HTML (Ruby on Rails) Una solicitud GET es utilizada en Ruby on Rails para obtener información de una base de datos o de otra fuente y mostrarla en una página HTML. El siguiente código muestra cómo realizar una solicitud GET en Ruby on Rails: “`ruby # En el archivo de rutas (routes.rb) se configura la ruta para la solicitud GET # por ejemplo: get ‘/ejemplo’, to: ‘controlador#accion’ # En el controlador (controller) correspondiente se define la acción para manejar # la solicitud GET y obtener los datos necesarios, por ejemplo: class ControladorController < ApplicationController def accion @datos = Modelo.all # 'Modelo' hace referencia a un modelo de datos en la base de datos respond_to do |formato| formato.html end end end # Finalmente, en la vista correspondiente (accion.html.erb por ejemplo), # se puede usar el objeto @datos para mostrar la información en HTML, por ejemplo: <% @datos.each do |dato| %>

<%= dato.nombre %>

<% end %> “`

Estoy tratando de mostrar la respuesta de mi solicitud GET en mi página HTML en Ruby on Rails.
El siguiente código me devuelve la URL de la respuesta y cuando pruebo esa URL en Postman, obtengo el ID de perfil correcto. Quiero mostrar este ID en mi página HTML, pero no sé cómo acceder al archivo JSON para hacerlo y mostrar solo el ID.

Estoy tratando de hacer algo como esto en mi HTML, lo cual está mal.

<h3>Perfil identificado</h3>
<p id="profile"></p>
<pre><%= @response.to_json %></pre>

Mi solicitud GET dentro del controlador se ve así:

def selectedProfile
    require 'net/http'
    require "uri"

    url = params[:url]

    uri = URI.parse(url)

    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    # Encabezados de la solicitud
    request['Ocp-Apim-Subscription-Key'] = 'CLAVE AQUÍ'

    http.use_ssl = true

    response = http.request(request)

    render json: {identifiedProfile: response.body}
end

Respuesta en Postman:

{
    "status": "succeeded",
    "createdDateTime": "2022-01-07T16:22:04.417735Z",
    "lastActionDateTime": "2022-01-07T16:22:14.5041456Z",
    "processingResult": {
        "confidence": "Baja",
        "identifiedProfileId": "Lo que quiero mostrar"
    }
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para acceder al campo identifiedProfileId del JSON devuelto por la solicitud GET, puedes analizar la cadena JSON utilizando el método JSON.parse proporcionado por Ruby. Aquí tienes un ejemplo de cómo puedes modificar tu código de vista para mostrar el ID de perfil identificado:

    <h3>Perfil Identificado</h3>
    <p id="profile"><%= JSON.parse(@response.body)["processingResult"]["identifiedProfileId"] %></p>
    

    Este código utiliza JSON.parse para convertir la cadena @response.body en un hash de Ruby, luego accede al objeto processingResult y al campo identifiedProfileId dentro de él para extraer el valor del ID de perfil. La sintaxis <%= ... %> en la plantilla HTML te permite insertar el valor resultante en la página web renderizada.

    Ten en cuenta que también debes asegurarte de que la variable de instancia @response esté correctamente configurada en tu acción del controlador y que se pase a la vista. El código de ejemplo que proporcionaste parece estar representando correctamente la respuesta JSON como un hash, por lo que, suponiendo que la llamada a render funcione correctamente, deberías poder acceder al cuerpo de la respuesta en la vista utilizando @response.body.

Comments are closed.