Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
MongoDBchevron-right

Construindo aplicativos Rails com o modelo MongoDB

Joel Lord4 min read • Published Aug 26, 2024 • Updated Aug 26, 2024
MongoDBRuby
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty

Construindo aplicativos Rails com o modelo MongoDB

Após mais de 20 anos, Ruby on Rails ainda é uma framework popular para desenvolvimento web. Sua arquitetura MVC (Model-View-Controller) oferece uma maneira fácil de criar um aplicativo web limpo, bem estruturado e escalável.
O Rails está integrado a um banco de dados relacional tradicional, mas isso pode ser facilmente alterado para usar o MongoDB. As instruções estão em nosso guia de introdução. No entanto, se você quiser simplesmente criar um aplicativo totalmente funcional, poderá usar o modelo MongoDB Rails, conforme explicado neste tutorial.

Requisitos

Para este tutorial, você precisará de:

Sobre o modelo MongoDB-Rails

Este modelo usa o Mongoid, o driver mantido do MongoDB, para se conectar e fazer a interface com o banco de dados. Para criar o estilo, mantivemos as coisas simples e utilizamos tailwindcss-rails. Todo o resto deve ser igual a um projeto Virginia Rails.

Começar

Comece criando um novo projeto Rails. Você deve usar o sinalizador--skip-active-record para que ele não instale essas gems. Estes serão substituídos pela joiamongoid .
1rails new rails-mongodb -m https://raw.githubusercontent.com/mongodb-developer/rails-mongodb/main/template.rb --skip-active-record
Quando solicitado, insira a connection string para seu Cluster MongoDB. A UI do Atlas fornece a connection string.
Agora você tem tudo de que precisa para iniciar seu servidor da web.
1cd rails-mongodb
2rails s
Agora, você deve conseguir apontar seu navegador para http://localhost:3000 e ver o aplicativo em execução. Calma! Você tem um aplicativo Rails que se conecta ao banco de MongoDB database. A partir desta interface do usuário, você pode ver a lista de filmes do banco de dadossample_mflix. Clicar em um título levará você à página de detalhes para ver a trama do filme. Você também pode clicar no ícone da lixeira ao lado dos filmes para excluí-los.
Você também tem uma barra Atlas Search na parte inferior, que permite pesquisar filmes por título. Você até tem um formulário para adicionar novos filmes.

Explorando o aplicativo

Você tem um aplicativo básico, mas e agora? É provável que você tenha um conjunto de dados diferente e queira se conectar a ele. Aqui, descrevemos os vários componentes deste aplicativo e como você pode editá-los para seus dados.

Conexão de banco de dados

O Mongoid gerencia a conexão do banco de dados. A string de conexão está no arquivo config/mongoid.yml. Você pode alterá-lo aqui para se conectar a um cluster diferente. O driver gerenciará as conexões do banco de dados, então você não precisa fazer mais aqui.

Filmes MVC

Para criar nosso modelo de filme, usamos o andaime Rails padrão. Para os fins deste aplicativo, nossos filmes têm apenas três campos: title, plote year.
1bin/rails g scaffold Movie title:string plot:text year:integer
Você reconhecerá os arquivos padrão listados nas pastas app/models, app/controllerse app/views para os componentes MVC do aplicativo.

Modelos

O modelo para os filmes pode ser encontrado no arquivoapp/models/movie.rb.
1class Movie
2 include Mongoid::Document
3 store_in database: 'sample_mflix'
4
5 include Mongoid::Timestamps
6 field :title, type: String
7 field :plot, type: String
8 field :year, type: Integer
9end
Como você pode ver, nossos três campos e os registros de data/hora estão listados aqui. Isso gerenciará automaticamente os updated_at created_at campos e em seu documento.
Neste caso, adicionamos a linhastore_in database: 'sample-mflix'. Normalmente, isso seria tratado em sua connection string armazenada no arquivoconfig/mongoid.yml. É aqui apenas para o objetivo tutorial do artigo.

Controles

Em seguida, o código do nosso controlador de filme pode ser encontrado no arquivoapp/controllers/movies_controller.rb. O Mongoid gerou a maior parte do código neste controlador, que também contém o código para recuperar alguns dos filmes do banco de dados.
1 # GET /movies or /movies.json
2 def index
3 @movies = Movie.limit(10)
4
5 # Return movies if a form was posted with a search term
6 if params[:search]
7 @searched_movies = Movie.where(title: /#{params[:search]}/i)
8 end
9 end
Fazemos duas coisas aqui.
Primeiro, buscamos 10 filmes do banco de dados com Movie.limit(10). Não temos nenhum filtro de query específico para este, mas não queremos carregar todos os filmes do nosso banco de dados em nossa visualização.
Em segundo lugar, procuramos um parâmetro de query chamado search. Se estiver presente, realizamos uma query um pouco mais complexa para recuperar os filmes que correspondam a esse filtro. Neste caso, usamos o filtro (title: /#{params[:search]}/i). Isso usará uma expressão regular para encontrar títulos de filmes que correspondam à query.
Usar um regex para consultar texto não é ideal, pois ele não pode usar os índices. Embora isso funcione para esse aplicativo de demonstração, você deve tentar usar o Atlas Search para seu aplicativo de produção.
Nada mais foi alterado neste arquivo, para que você possa ver como o código gerado pode fornecer todas as funcionalidades básicas. Deixamos a funçãoupdate no arquivo, mesmo que o aplicativo não a use, para que você veja como seria o código de atualização.

Visualizações

Finalmente, você tem suas visualizações. Você pode encontrá-los na pastaapp/views/movies . Há uma visualização para cada uma das páginas do nosso aplicativo e uma visualização parcial para listar os filmes.
O HTML nas visualizações foi ligeiramente alterado em relação ao código padrão do Rails para torná-lo mais esteticamente desejável ao observar o aplicativo, mas a maior parte do código manteve-se inalterada. Usamos o código original em app/views/movies/index.html.erb para exibir os filmes na página principal.
1 <% @movies.each do |movie| %>
2 <%= render movie %>
3 <% end %>
Isso gerará cada filme na lista usando o modelo parcial app/views/movies/_movie.html.erb.
O modelo parcial também foi mantido no mínimo.
1<div id="<%= dom_id movie %>">
2 <%= link_to "🗑️", movie_path(movie), data: { turbo_method: :delete } %>
3 <%= link_to " #{movie.title} (#{movie.year})", movie_path(movie) %>
4</div>
Você pode ver aqui que listamos o título e o ano do filme, e o link para a página de detalhes do filme. O ícone da lixeira usa o link{ turbo_method: :delete } para excluir o filme da coleção imediatamente.
Como seria de se esperar de um aplicativo Rails, dependemos principalmente das convenções de codificação para compartilhar os dados dos drivers com as visualizações, para que os filmes possam ser exibidos.

Próximos passos

É isso ai! Você tem o básico para se conectar ao seu database e executar as operações CRUD (create, read, update, delete) em suas collections. Isso é tudo que você precisa para construir sua aplicação no Rails. Se quiser saber mais, você pode usar o link fornecido na barra de navegação do aplicativo.
Agora, tente adicionar mais páginas ao seu aplicativo. Adicionar uma coleção para os atores seria um ótimo lugar para começar. E se você estiver se sentido destemido, pode adicionar uma seção para adicionar comentários associados a filmes. Você pode encontrar um exemplo disso no guiade introdução. Se precisar de ajuda, entre em contato conosco nos fóruns da comunidadee teremos o maior Prazer em ajudar.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Iniciar a conversa

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Exemplo de código

Como usar a criptografia no nível do campo do lado do cliente (CSFLE) do MongoDB com C#


Sep 23, 2022 | 18 min read
Tutorial

Como migrar seu aplicativo Node.js do SQL para o MongoDB


Jul 09, 2024 | 16 min read
Tutorial

Como começar a usar o Neurelo e o MongoDB


Aug 30, 2024 | 7 min read
Início rápido

Pipelines de agregação complexos com Baunilha PHP e MongoDB


Sep 05, 2024 | 10 min read
Sumário
  • Construindo aplicativos Rails com o modelo MongoDB