Cześć
Czy może mi powiedzieć dlaczego w formularzu rejestracyjnym wykonawcy github użyli name="user[login]" zamiast identyfikatora id="login"? Z czego to wynika?
Cześć
Czy może mi powiedzieć dlaczego w formularzu rejestracyjnym wykonawcy github użyli name="user[login]" zamiast identyfikatora id="login"? Z czego to wynika?
GitHub jest napisany (w dużej mierze) w Rails. A w tym frameworku wszystkie parametry (niezależnie czy to jest POST, GET, PUT czy DELETE) są dostępne poprzez obiekt params
. Tak więc by oddzielić formularz od pozostałych parametrów jego pola są dostępne pod kluczem <nazwa-modelu>
dzięki czemu można bardzo prosto pobrać wszystkie pola formularza oddzielając je od pozostałych parametrów:
def create
@user = User.new(params[:user])
# ...
end
W ten sposób upraszczasz logikę.
Jeśli Cię ciekawi komu chciało się tak nazywać pola formularza to podpowiem, że nikomu. Służy do tego helper form_for
:
<%= form_for @offer do |f| %>
<%= f.label :version, 'Version' %>:
<%= f.text_field :version %><br />
<%= f.label :author, 'Author' %>:
<%= f.text_field :author %><br />
<%= f.submit %>
<% end %>
Co do użycia name
zamiast id
to primo z powodu, że identyfikatory nie mogą być tablicą, a secundo, że to zła praktyka i różnie wspierana przez przeglądarki (np. <label>
podepniesz tylko pod name
, pod id
się nie uda).
TL;DR
Bo łatwiej i poprawniej semantycznie