Ruby on Rails
Formare aiutanti
Ricerca…
introduzione
Rails fornisce help di visualizzazione per la generazione di markup di modulo.
Osservazioni
- I tipi di data di ingresso, tra cui
date
,datetime
,datetime-local
,time
,month
eweek
non funzionano in FireFox. -
input<type="telephone">
funziona solo con Safari 8. -
input<type="email">
non funziona su Safari
Crea un modulo
Puoi creare un modulo usando l'helper form_tag
<%= form_tag do %>
Form contents
<% end %>
Questo crea il seguente codice HTML
<form accept-charset="UTF-8" action="/" method="post">
<input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="J7CBxfHalt49OSHp27hblqK20c9PgwJ108nDHX/8Cts=" />
Form contents
</form>
Questo tag modulo ha creato un campo di input hidden
. Questo è necessario, perché i moduli non possono essere inviati correttamente senza di esso.
Il secondo campo di input, denominato authenticity_token
aggiunge protezione contro cross-site request forgery
.
Creazione di un modulo di ricerca
Per creare un modulo di ricerca, inserire il seguente codice
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
-
form_tag
: questo è l'helper predefinito per la creazione di un modulo. È il primo parametro,/search
è l'azione e il secondo parametro specifica il metodo HTTP. Per i moduli di ricerca, è importante utilizzare sempre il metodoget
-
label_tag
: questo helper crea un tag<label>
html. -
text_field_tag
: questo creerà un elemento di input context
tipo -
submit_tag
: crea un elemento di input con tiposubmit
Aiutanti per gli elementi del modulo
caselle di controllo
<%= check_box_tag(:pet_dog) %>
<%= label_tag(:pet_dog, "I own a dog") %>
<%= check_box_tag(:pet_cat) %>
<%= label_tag(:pet_cat, "I own a cat") %>
Questo genererà il seguente codice HTML
<input id="pet_dog" name="pet_dog" type="checkbox" value="1" />
<label for="pet_dog">I own a dog</label>
<input id="pet_cat" name="pet_cat" type="checkbox" value="1" />
<label for="pet_cat">I own a cat</label>
Tasti della radio
<%= radio_button_tag(:age, "child") %>
<%= label_tag(:age_child, "I am younger than 18") %>
<%= radio_button_tag(:age, "adult") %>
<%= label_tag(:age_adult, "I'm over 18") %>
Questo genera il seguente codice HTML
<input id="age_child" name="age" type="radio" value="child" />
<label for="age_child">I am younger than 18</label>
<input id="age_adult" name="age" type="radio" value="adult" />
<label for="age_adult">I'm over 18</label>
Area di testo
Per creare una casella di testo più grande, si consiglia di utilizzare text_area_tag
<%= text_area_tag(:message, "This is a longer text field", size: "25x6") %>
Questo creerà il seguente codice HTML
<textarea id="message" name="message" cols="25" rows="6">This is a longer text field</textarea>
Campo numerico
Questo creerà un elemento di input<type="number">
<%= number_field :product, :rating %>
Per specificare un intervallo di valori, possiamo usare l'opzione in:
<%= number_field :product, :rating, in: 1..10 %>
Campo password
A volte vuoi che i caratteri digitati dall'utente vengano mascherati. Questo genererà un <input type="password">
<%= password_field_tag(:password) %>
Campo email
Questo creerà un <input type="email">
<%= email_field(:user, :email) %>
Campo telefonico
Questo creerà un <input type="tel">
.
<%= telephone_field :user, :phone %>
Aiutanti di data
input[type="date"]
<%= date_field(:user, :reservation) %>
input[type="week"]
<%= week_field(:user, :reservation) %>
input[type="year"]
<%= year_field(:user, :reservation) %>
input[type="time"]
<%= time_field(:user, :check_in) %>
Cadere in picchiata
Esempio standard: @models = Model.all select_tag "models", options_from_collection_for_select (@models, "id", "name"), {}
Questo genererà il seguente codice HTML: David
L'ultimo argomento sono opzioni, che accettano quanto segue: {multiple: false, disabled: false, include_blank: false, prompt: false}
Altri esempi possono essere trovati: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag