czemu name zamiast id na polu formularza?

0

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?

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1