Nel dinamico mondo dello sviluppo web, Ruby on Rails si distingue come un framework potente ed efficiente per la creazione di applicazioni web. Uno degli aspetti fondamentali di molte applicazioni web è la capacità di raccogliere l'input dell'utente tramite moduli. In questo post del blog ti guiderò attraverso il processo di creazione di un semplice modulo in Rails utilizzando il fileforma_conaiutante. In qualità di fornitore di Rails, ho avuto il privilegio di lavorare su numerosi progetti in cui le forme svolgono un ruolo cruciale e sono entusiasta di condividere le mie intuizioni con voi.
Comprensioneforma_connelle rotaie
Prima di immergerci nella creazione di un modulo, prendiamoci un momento per capire di cosaforma_conÈ.forma_conè un metodo di supporto in Rails che semplifica il processo di creazione di moduli HTML. Fornisce un modo flessibile e intuitivo per generare moduli che siano semanticamente corretti e facili da mantenere. Che tu stia creando un semplice modulo di contatto o un modulo complesso in più passaggi,forma_conti ha coperto.
Configurazione di una nuova applicazione Rails
Se non l'hai già fatto, dovrai configurare una nuova applicazione Rails. Apri il tuo terminale ed esegui il seguente comando:
rotaie nuovo cd simple_form_app simple_form_app
Questo creerà una nuova applicazione Rails denominatasimple_form_appe naviga nella directory dell'applicazione.
Generazione di un controller e di una vista
Successivamente, genereremo un controller e una vista per gestire il nostro modulo. Esegui il seguente comando nel tuo terminale:
le rotaie generano nuovi moduli controller
Questo genererà un fileFormsControllercon anuovoazione e un file di visualizzazione corrispondente inapp/views/forms/new.html.erb.
Creazione del modulo utilizzandoforma_con
Ora apriamo il fileapp/views/forms/new.html.erbfile e crea il nostro modulo utilizzandoforma_con. Ecco un esempio di un semplice modulo di contatto:
<%= form_with(url: "/submit_form", metodo: :post) esegui |form| %> <div> <%= form.label :nome %> <%= form.text_field :nome %> </div> <div> <%= form.label :email %> <%= form.email_field :email %> </div> <div> <%= form.label :messaggio %> <%= form.text_area :messaggio %> </div> <div> <%= form.submit "Invia" %> </div> <% end %>
In questo esempio, stiamo utilizzandoforma_conper creare un modulo che invierà i suoi dati al/invia_moduloURL utilizzando il fileINVIAREmetodo. All'interno del blocco del modulo, utilizziamo vari metodi di supporto del modulo per creare campi di input per il nome, l'e-mail e il messaggio dell'utente, nonché un pulsante di invio.


Gestione dell'invio del modulo
Per gestire l'invio del modulo, dovremo aggiungere un percorso e un'azione al file ourFormsController. Apri ilconfig/routes.rbfile e aggiungi la seguente riga:
pubblica "/submit_form", in: "forms#submit"
Questo mapperà il/invia_moduloURL alinviaazione nelFormsController. Ora apri il fileapp/controllers/forms_controller.rbfile e aggiungi la seguente azione:
def send # Qui puoi elaborare i dati del modulo, ad esempio, salvarli nel database name = params[:name] email = params[:email] message = params[:message] # Per ora, stamperemo semplicemente i dati sulla console puts "Name: #{name}" puts "Email: #{email}" puts "Message: #{message}" reindirizza_a root_path, nota: 'Modulo inviato con successo!' FINE
In questa azione, stiamo recuperando i dati del modulo dal fileparametrihash e stamparlo sulla console. In un'applicazione reale, in genere si salverebbero i dati in un database o si invierebbe un'e-mail. Dopo aver elaborato i dati del modulo, reindirizziamo l'utente al percorso root con un messaggio di successo.
Stilare il modulo
Per rendere il nostro modulo più presentabile, possiamo aggiungere alcuni stili CSS. Apri ilapp/assets/stylesheets/application.cssfile e aggiungi i seguenti stili:
modulo div {margine-bottom: 10px; } etichetta del modulo { display: blocco; margine inferiore: 5px; } modulo input[tipo="testo"], modulo input[tipo="email"], modulo textarea { larghezza: 100%; imbottitura: 5px; bordo: 1px solido #ccc; raggio del bordo: 3px; } form input[type="submit"] { background-color: #007BFF; colore: bianco; imbottitura: 10px 20px; bordo: nessuno; raggio del bordo: 3px; cursore: puntatore; } form input[type="submit"]:hover { background-color: #0056b3; }
Questi stili conferiranno al nostro modulo un aspetto pulito e professionale.
Aggiunta di convalida al modulo
Per garantire che l'utente inserisca dati validi, possiamo aggiungere la convalida al nostro modulo. In Rails, possiamo utilizzare le convalide ActiveRecord per convalidare i dati prima di salvarli nel database. Tuttavia, poiché in questo esempio non utilizziamo un modello, possiamo utilizzare JavaScript per eseguire la convalida di base sul lato client. Ecco un esempio di come aggiungere la convalida al nostro modulo utilizzando JavaScript:
document.addEventListener('DOMContentLoaded', function() { const form = document.querySelector('form'); form.addEventListener('submit', function(event) { const name = document.querySelector('input[name="name"]').value; const email = document.querySelector('input[name="email"]').value; const message = document.querySelector('textarea[nome="messaggio"]').value; if (nome === '' || email === '' || messaggio === '') { alert('Compila tutti i campi');
Questo codice JavaScript impedirà l'invio del modulo se uno qualsiasi dei campi obbligatori è vuoto.
Conclusione
Creazione di un modulo semplice in Rails utilizzandoforma_conè un processo semplice. Seguendo i passaggi descritti in questo post del blog, puoi creare un modulo funzionale che raccoglie l'input dell'utente e gestisce l'invio dei moduli. In qualità di fornitore di Rails, ho constatato in prima persona la potenza e la flessibilità di Rails nella creazione di applicazioni Web e spero che questa guida ti sia stata utile.
Se sei interessato all'acquisto di binari di alta qualità per i tuoi progetti, offriamo un'ampia gamma di opzioni, incluso ilRotaia di gru GOST standard KP140,49E2 Binario in acciaio, EBinario BS 100A. I nostri binari sono progettati per soddisfare i più elevati standard di qualità e prestazioni e ci impegniamo a fornire un eccellente servizio clienti. Se hai domande o desideri discutere le tue esigenze, non esitare a contattarci per una consulenza sull'approvvigionamento.
Riferimenti
- Guide sui binari: https://guides.rubyonrails.org/
- Rete di sviluppatori Mozilla: https://developer.mozilla.org/
