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.