Ruby on Rails
Formulierhelpers
Zoeken…
Invoering
Rails biedt view-helpers voor het genereren van formuliermarkeringen.
Opmerkingen
- De
datetimedate, inclusiefdate,datetime,datetime-local,time,monthenweekwerken niet in FireFox. -
input<type="telephone">werkt alleen met Safari 8. -
input<type="email">werkt niet op Safari
Maak een formulier aan
U kunt een formulier maken met behulp van de form_tag helper
<%= form_tag do %>
Form contents
<% end %>
Hiermee wordt de volgende HTML gemaakt
<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>
Deze formuliertag heeft een hidden invoerveld gemaakt. Dit is noodzakelijk omdat formulieren niet zonder deze kunnen worden verzonden.
Het tweede invoerveld, genaamd authenticity_token voegt bescherming toe tegen cross-site request forgery .
Een zoekformulier maken
Voer de volgende code in om een zoekformulier te maken
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
-
form_tag: dit is de standaardhulp voor het maken van een formulier. Het is de eerste parameter,/searchis de actie en de tweede parameter geeft de HTTP-methode aan. Voor zoekformulieren is het belangrijk om altijd de methodeget -
label_tag: deze helper maakt een html<label>-tag. -
text_field_tag: Hiermee maakt u eentext_field_tagmettext -
submit_tag: Dit creëert eensubmit_tagmet het typesubmit
Helpers voor formulierelementen
checkboxes
<%= 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") %>
Dit genereert de volgende 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>
Radio knoppen
<%= 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") %>
Dit genereert de volgende 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>
Tekstgebied
Om een groter tekstvak te maken, wordt het aanbevolen om de text_area_tag te gebruiken
<%= text_area_tag(:message, "This is a longer text field", size: "25x6") %>
Hiermee wordt de volgende HTML gemaakt
<textarea id="message" name="message" cols="25" rows="6">This is a longer text field</textarea>
Nummer veld
Hiermee wordt een input<type="number">
<%= number_field :product, :rating %>
Om een waardenbereik op te geven, kunnen we de optie in: gebruiken
<%= number_field :product, :rating, in: 1..10 %>
Wachtwoord veld
Soms wilt u dat de door de gebruiker getypte tekens worden gemaskeerd. Dit genereert een <input type="password">
<%= password_field_tag(:password) %>
Email veld
Hiermee maakt u een <input type="email">
<%= email_field(:user, :email) %>
Telefoon veld
Hiermee wordt een <input type="tel"> .
<%= telephone_field :user, :phone %>
Datum Helpers
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) %>
Laten vallen
Standaardvoorbeeld: @models = Model.all select_tag "models", options_from_collection_for_select (@models, "id", "name"), {}
Dit genereert de volgende HTML: David
Het laatste argument zijn opties, die het volgende accepteren: {multiple: false, disabled: false, include_blank: false, prompt: false}
Meer voorbeelden zijn te vinden: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag