Crear un archivo de aplicación
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'))
Crear un modelo de datos
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
Generar una vista
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>
Agregar una ruta web
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.
(Opcional) Ver sus resultados como documentos JSON
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
Comience su aplicación Sinatra
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
Ver los datos del restaurante
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:

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.