Pular para o conteúdo principal

Rotas personalizadas

O sistema de roteamento do Nerdify é automatizado, flexível e totalmente integrado ao conceito de produtividade e padronização do framework. Basta seguir as convenções e o roteamento “simplesmente funciona”.

Sempre que possível, use os controladores com convenções e aproveite o poder do roteamento dinâmico do Nerdify. Mas abaixo vamos demonstrar como personalizar o roteamento da rota raiz e construir outras rotas personalizadas.

Por padrão, o frontend do Nerdify redireciona a rota raiz da aplicação para:

/api/v1/home

Você pode redirecionar essa rota diretamente no routes.rb com:

get "/api/v1/home", to: proc {
[200, {}, [{ redirect_to: "/clientes", open_in: "default" }.to_json]]
}

📡 Neste caso você está realizando um redirecionamento no frontend, retornando para o frontend para que mande o usuário para /clientes no lugar de /home. Ao fazer isso o frontend vai direicionar o usuário no navegador, ao carregar a página o controlador do frontend vai chamar backend passando o namespace de versão através de /api/v1/clientes e o backend deve retornar ai sim a página inicial.

🔁 Por isso retornamos no redirect_to o valor da rota sem o api/v1, porque estamos retornando o comando de redirecionamento para o frontend.

🧩 Se precisar criar lógicas mais robustas, você pode usar um controlador para isso e adicionar uma rota personalizada. Por exemplo:

get "/api/v1/teste" => "api/v1/teste#custom_route"

E no controlador fazer o seguinte:

class Api::V1::TesteController < ApplicationController
def custom_route
if current_user.admin?
render json: { redirect_to: "/admin/dashboard" }
else
render json: { redirect_to: "/clientes" }
end
end
end

🎯 Esse comportamento orienta o frontend a navegar para determinada tela ao carregar o sistema. Você ainda pode passar um parametro redirect_to: ..., open_in: :dialog para determinar se deseja que a página seja redirecionada abrindo em um modal.

🛠️ Como uma aplicação Nerdify utiliza por baixo o Rails, você pode personalizar rotas e controladores manualmente usando o funcionamento padrão do roteamento do Rails.