Criar um arquivo de aplicação
No nível raiz do seu projeto, crie um arquivo chamado app.rb
. Cole o seguinte conteúdo no arquivo app.rb
para carregar as gems necessárias e seu arquivo de configuração:
require 'sinatra' require 'mongoid' Mongoid.load!(File.join(File.dirname(__FILE__), 'config', 'mongoid.yml'))
Criar um Modelo de Dados
No arquivo app.rb
, crie um modelo chamado Restaurant
para representar dados da coleção de amostra restaurants
no banco de dados sample_restaurants
:
class Restaurant include Mongoid::Document field :name, type: String field :cuisine, type: String field :borough, type: String end
Gerar uma visualização
Crie uma visualização para exibir seus dados de uma forma especificada utilizando HTML e Ruby.
No nível raiz do seu projeto, crie um diretório chamado views
. Em seguida, crie um arquivo chamado list_restaurants.erb
. Cole o seguinte código no arquivo 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>
Adicionar uma rota da web
No arquivo app.rb
, adicione uma rota get
chamada list_restaurants
, conforme mostrado no código a seguir:
get '/list_restaurants' do @restaurants = Restaurant .where(name: /earth/i) erb :list_restaurants end
Esta rota recupera Restaurant
documentos nos quais o valor do campo name
contém a string "earth"
. A rota utiliza a visualização list_restaurants
para renderizar os resultados.
(Opcional) Visualizar seus resultados como documentos JSON
Em vez de gerar uma visualização para renderizar seus resultados, você pode utilizar o método to_json
para exibir seus resultados no formato JSON.
Substitua a rota list_restaurants
no arquivo app.rb
pelo seguinte código para retornar os resultados como documentos JSON:
get '/list_restaurants' do restaurants = Restaurant .where(name: /earth/i) restaurants.to_json end
Inicie seu aplicação Sinatra
Execute o seguinte comando a partir do diretório raiz do aplicação para iniciar seu servidor web Ruby :
bundle exec ruby app.rb
Depois que o servidor é iniciado, ele gera a seguinte mensagem indicando que o aplicação está sendo executado na porta 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
Veja os dados do restaurante
Abra a URL http://localhost:4567/list_restaurants no seu navegador da web. A página mostra uma lista de restaurantes e detalhes sobre cada um deles:

Observação
Se você tiver problemas, peça ajuda nos Fóruns da MongoDB Community ou envie comentários usando o Feedback botão no canto superior direito da página.