Ruby

13 de Fevereiro de 2024 - @Walmir Neto


Avo é uma ferramenta para “criar áreas administrativa”, ele apareceu como alternativa para ‣ e ‣. E para adicionar é só entrar na pasta do projeto e rodar

rails app:template LOCATION='<https://avohq.io/app-template>'

Esse comando vai adicionar as rotas do avo, o arquivos de configuração e

# Gemfile
+gem "avo", ">= 3.2"

# routes.rb
 Rails.application.routes.draw do
+  mount Avo::Engine, at: Avo.configuration.root_path
   # Define your application routes per the DSL in <https://guides.rubyonrails.org/routing.html>

E cria o arquivo de inicialização config/initializers/avo.rb

Criando um resource avo

Depois que vocês instala o avo, tais como:

rails g | grep "avo:"
# Avo:
#   avo:action
#   avo:card
#   avo:controller
#   avo:dashboard
#   avo:eject
#   avo:field
#   avo:filter
#   avo:install
#   avo:js:install
#   avo:locales
#   avo:resource
#   avo:resource_tool
#   avo:scope
#   avo:tailwindcss:install
#   avo:tool
#   avo:version

Mas criar um resource “avo” pode ser através do rails g model

➜ rails g model post title:string content:text publiahed_at:datetime disabled:boolean

Com isso além do model padrão rails, será criado dois arquivos extras app/controllers/avo/posts_controller.rb (controller do resource) e app/avo/resources/post.rb e esse sim que são os campos que querem adicionar no form e na listagem de posts

class Avo::Resources::Post < Avo::BaseResource
  self.title = :title

  def fields
    field :title, as: :text
    field :content, as: :textarea
    field :published_at, as: :date_time
    field :disable, as: :boolean
  end
end

O que é muito prático do Avo é que só usando o generate model do rails, o Avo, já vai gera o resource acima e depois disso você terá um CRUD completo de posts acessando http://localhost:3000/avo/resources/posts

Guia básico do Avo

https://youtu.be/BK47E7TMXn0?si=LCeo3zOCmeISykWQ

O vídeo acima é uma das melhores explicação do como o Avo é útil

O código desse exemplo → https://github.com/owalmirneto/rails-demo/pull/6