Docs Menu
Docs Home
/ /

Ver datos de MongoDB - Sinatra

1

En el nivel raíz de su proyecto, cree un archivo llamado app.rbPegue el siguiente contenido en el archivo app.rb para cargar las gemas necesarias y su archivo de configuración:

require 'sinatra'
require 'mongoid'
Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'))
2

En el archivo app.rb, cree un modelo llamado Restaurant para representar datos de la colección de muestra restaurants en la base de datos sample_restaurants:

class Restaurant
include Mongoid::Document
field :name, type: String
field :cuisine, type: String
field :borough, type: String
end
3

Cree una vista para mostrar sus datos de una manera específica utilizando HTML y Ruby.

En el nivel raíz de un proyecto, crear un directorio llamado views. Luego, crea un archivo llamado list_restaurants.erb. Pega el siguiente código en el archivo list_restaurants.erb:

<!DOCTYPE html>
<html>
<head>
<title>Restaurants List</title>
</head>
<body>
<h1>Restaurants List</h1>
<table border="1">
<tr>
<th>Name</th>
<th>Cuisine</th>
<th>Borough</th>
</tr>
<% @restaurants.each do |restaurant| %>
<tr>
<td><%= restaurant.name %></td>
<td><%= restaurant.cuisine %></td>
<td><%= restaurant.borough %></td>
</tr>
<% end %>
</table>
</body>
</html>
4

En el archivo app.rb, agregue una ruta get llamada list_restaurants, como se muestra en el siguiente código:

get '/list_restaurants' do
@restaurants = Restaurant
.where(name: /earth/i)
erb :list_restaurants
end

Esta ruta recupera Restaurant documentos cuyo valor del campo name contiene la cadena "earth". La ruta utiliza la vista list_restaurants para mostrar los resultados.

5

En lugar de generar una vista para representar sus resultados, puede utilizar el método to_json para mostrar sus resultados en formato JSON.

Reemplace la ruta list_restaurants en el archivo app.rb con el siguiente código para devolver los resultados como documentos JSON:

get '/list_restaurants' do
restaurants = Restaurant
.where(name: /earth/i)
restaurants.to_json
end
6

Ejecute el siguiente comando desde el directorio raíz de la aplicación para iniciar su servidor web Ruby:

bundle exec ruby app.rb

Una vez iniciado el servidor, se muestra el siguiente mensaje indicando que la aplicación se está ejecutando en el puerto 4567:

[2024-10-01 12:36:49] INFO WEBrick 1.8.2
[2024-10-01 12:36:49] INFO ruby 3.2.5 (2024-07-26) [arm64-darwin23]
== Sinatra (v4.0.0) has taken the stage on 4567 for development with backup from WEBrick
[2024-10-01 12:36:49] INFO WEBrick::HTTPServer#start: pid=79176 port=4567
7

Abrir la URL http://localhost:4567/lista_restaurantes En su navegador web. La página muestra una lista de restaurantes y detalles sobre cada uno:

La lista renderizada de restaurantes

Nota

Si tiene algún problema, solicite ayuda en la etiqueta MongoDB Stack Overflow o en la comunidad MongoDB Reddit. También puede enviar comentarios mediante Rate this page pestaña en el lado derecho de esta página.

Volver

Configure su conexión