Ruby on Rails
Formularze Pomocników
Szukaj…
Wprowadzenie
Railsy zapewniają pomocniki widoku do generowania znaczników formularzy.
Uwagi
- Rodzaje data wejścia w tym
date
,datetime
,datetime-local
,time
,month
iweek
nie działa w Firefoksie. -
input<type="telephone">
działa tylko z Safari 8. -
input<type="email">
nie działa w przeglądarce Safari
Utwórz formularz
Możesz utworzyć formularz za pomocą pomocnika form_tag
<%= form_tag do %>
Form contents
<% end %>
Spowoduje to utworzenie następującego kodu 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>
Ten znacznik formularza utworzył hidden
pole wejściowe. Jest to konieczne, ponieważ bez tego formularza nie można pomyślnie przesłać formularzy.
Drugie pole wejściowe o nazwie token authenticity_token
zapewnia ochronę przed cross-site request forgery
.
Tworzenie formularza wyszukiwania
Aby utworzyć formularz wyszukiwania, wprowadź następujący kod
<%= form_tag("/search", method: "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
-
form_tag
: Jest to domyślny pomocnik do tworzenia formularza. Jest to pierwszy parametr,/search
to akcja, a drugi parametr określa metodę HTTP. W przypadku formularzy wyszukiwania ważne jest, aby zawsze używać metodyget
-
label_tag
: Ten pomocnik tworzy tag HTML<label>
. -
text_field_tag
: Spowoduje to utworzenie elementu wejściowego ztext
typu -
submit_tag
: Tworzy element wejściowy z typemsubmit
Pomocniki dla elementów formularza
Pola wyboru
<%= 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") %>
Spowoduje to wygenerowanie następującego kodu 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>
Przyciski radiowe
<%= 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") %>
To generuje następujący kod 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>
Obszar tekstowy
Aby utworzyć większe pole tekstowe, zaleca się użycie text_area_tag
<%= text_area_tag(:message, "This is a longer text field", size: "25x6") %>
Spowoduje to utworzenie następującego kodu HTML
<textarea id="message" name="message" cols="25" rows="6">This is a longer text field</textarea>
Pole liczbowe
Spowoduje to utworzenie elementu input<type="number">
<%= number_field :product, :rating %>
Aby określić zakres wartości, możemy użyć opcji in:
<%= number_field :product, :rating, in: 1..10 %>
Pole hasła
Czasami chcesz, aby znaki wpisane przez użytkownika były maskowane. Spowoduje to wygenerowanie <input type="password">
<%= password_field_tag(:password) %>
Pole e-mail
Spowoduje to utworzenie <input type="email">
<%= email_field(:user, :email) %>
Pole telefoniczne
Spowoduje to utworzenie <input type="tel">
.
<%= telephone_field :user, :phone %>
Pomocnicy daty
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) %>
Upuścić
Standardowy przykład: @models = Model.all tag_wybrania „modele”, options_from_collection_for_select (@models, „id”, „name”), {}
Spowoduje to wygenerowanie następującego kodu HTML: David
Ostatnim argumentem są opcje, które akceptują następujące elementy: {wielokrotność: fałsz, wyłączony: fałsz, include_blank: fałsz, monit: fałsz}
Więcej przykładów można znaleźć: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag