2012-10-12 17 views
8

Widzę dużo czasu w nawiasie kwadratowym w atrybucie nazwy znacznika wejściowego. Po co to jest i dlaczego jest używane?Nawiasy kwadratowe w atrybucie nazwy znacznika wejściowego

 
    `input id="academy_name" name="academy[name]" size="30" type="text" />` 

Dlaczego nazwa = "akademia [nazwa]", a nie tylko nazwa = "akademia".

Proszę pomóc!

+0

To nazwa wrape w akademii hash, więc gdy wykonasz param [: akademia] da ci wszystko atrybut obiektu akademii – Amar

+0

Och, mam to .... Dzięki Amar :) –

Odpowiedz

10

Niektóre ram po stronie serwera, w tym Ruby on Rails, użyj tego rodzaju notacji jako wskazanie, że powinien gromadzić dane w jednym obiekcie po stronie serwera (tablica asocjacyjna - np. mapa - w przypadku Ruby on Rails). Na przykład z Ruby on Rails, jeśli masz nazwisko = "user [email]" i name = "user [phone]" i przesłałeś formularz, w swoim kodzie Ruby on Rails na serwerze możesz pobrać jednego użytkownika obiekt z żądania i miałby na nim klucze e-mail i telefon.

+0

Ok, ale ... dzięki Dipak !! –

1

To dlatego, że deweloper jest za pomocą tablicy, a więc jest on owijania nazwy w [] kreskowych nawiasach

+3

W przypadku RoR to nie wskazuje Array notation on the form. Wskazuje, że atrybut 'name' należy do obiektu' akademia'. Kiedy formularz jest odsyłany, mapuje atrybuty obiektu 'akademia 'na odpowiednie atrybuty. –

0

RoR odwzorowuje atrybuty modeli w obrębie nazwy modelu, tak aby po wysłaniu formularza można przypisać je łatwo, takich jak:

Academy.create(params[:academy]) 

lub

@academy = Academy.find(params[:id]) 
@academy.update_attributes(params[:academy] 

(znany także jako przypisanie masy).

Jeśli przejrzysz obiekt academy, zostanie on wysłany do formularza w haszcie params, zobaczysz, że ma on element dla każdej rzeczy zawartej w nawiasach kwadratowych.

+0

Ok Got it..Thanks Michael !! –

Powiązane problemy