@kolosekNesha
CEO @ Kolosek.com
Scaffolding in Ruby on Rails refere-se à auto-geração de um conjunto de um modelo, vistas e um controlador normalmente utilizado para uma única tabela de base de dados.
Por exemplo, você pode auto-gerar um controlador, modelo e views prontos para uso com uma interface web CRUD (Create, Read, Update, Delete) completa para a tabela Story usando o seguinte comando:
$rails generate scaffold Story title:string content:text
É muito mais fácil fazer isso, ao invés de codificar tudo você mesmo, isso economiza muito tempo!
>
Cárculo ou Modelos?
Comparado ao andaime que gera tudo o que você precisa (e não precisa), os modelos criam apenas alguns componentes relacionados. A melhor, e minha favorita, maneira de explicar a diferença entre andaime e modelos é usando o seguinte exemplo:
Gerar modelos
Após você digitar o comando
$rails generate model Story title:string content:text
você irá gerar:
invoke active_record irá amarrar seu modelo ao banco de dados, enquanto a próxima linha cria um arquivo de migração. As migrações são usadas para alterar o esquema do seu banco de dados. Este ficheiro de migração cria a tabela da base de dados chamada ‘stories’, e colunas da base de dados para “title” e “content”.
A terceira linha irá criar um modelo – uma classe Ruby que herda o Active Record. Com isto, todos os métodos que podem ser chamados no Active Record podem agora ser chamados no seu modelo. As últimas três linhas criam ficheiros de teste relacionados para o seu modelo.
Embora os andaimes o ponham a funcionar rapidamente, é pouco provável que o código que gera seja perfeito para a sua aplicação. Você provavelmente vai querer customizar o código gerado. Muitos desenvolvedores Rails experientes evitam os andaimes inteiramente, preferindo escrever todo ou a maior parte de seu código fonte do zero. Você pode ler mais sobre isso no RailsGuides.
Como você pode ver, gerar modelos não cria nenhum tipo de visualização para exibir informações em uma página. Para ter uma aplicação completa, pronta para usar, você precisaria:
- gerar controladores (que por sua vez gera views, também) ou
- gerar andaime (que gera seu modelo, views, controlador e escreve no seu arquivo route.rb).
Se você mudar de idéia e decidir usar o andaime após já ter gerado o modelo, você sempre poderá executar
$rails generate scaffold <name>
Criará todos os arquivos que faltam.
Gerar andaime
Se você digitar o comando
$rails generate scaffold Story title:string content:text
você irá gerar os seguintes arquivos:
Once testes relacionados ao modelo são criados, a próxima linha irá gerar rotas de recursos para suas histórias. Após gerar as rotas dos recursos vem o controlador e suas ações (indexar, mostrar, novo, editar, criar, atualizar e destruir), juntamente com as views e testes do controlador para cada uma dessas ações.
O roteador Rails reconhece URLs e as conecta à ação do controlador. Por padrão, a ação de um controller irá renderizar uma view com o mesmo nome.
Migração
A cada vez que você cria uma migração usando scripts (gerar model/generate scaffold) uma nova migração é adicionada ao diretório correto. Você usa
$rake db:migrate
para verificar quais migrações não foram adicionadas ao banco de dados.
Destruir
Todos estão livres para editar e fazer as alterações necessárias na sua aplicação para funcionar como pretendido, mesmo que isso signifique remover completamente o andaime. Você pode remover o andaime da seguinte maneira:
- Gerar o andaime:
$rails generate scaffold Story
- Se você migrou seus arquivos, execute um rollback:
$rake db:rollback
- Destrua ou desfaça um andaime:
$rails destroy scaffold Story
Ao fazer isso, você irá apagar todos os arquivos criados pelo andaime, mas alterações adicionais que você possa ter feito manualmente não serão removidas.
Conclusão
Um andaime é excelente para usar quando se trata de exemplos simples, maquetes rápidas ou testes. Entretanto, certifique-se de gerar seus próprios modelos quando decidir desenvolver uma nova aplicação. Não se esqueça de sempre testar a sua aplicação, descubra como fazê-lo usando Capybara!
Esperamos que você tenha descoberto algo novo hoje!
Publicado anteriormente em https://kolosek.com/rails-scaffold/
Tags
Cria a tua conta gratuita para desbloquear a tua experiência de leitura personalizada.