2012-10-12 12 views
8

Vedo un sacco di tempo in parentesi quadre nell'attributo name del tag di input. A cosa serve e perché è usato?Parentesi quadre nell'attributo nome del tag di input

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

Quindi, perché name = "academy [nome]" e non solo name = "academy".

Si prega di aiuto!

+0

Ha un nome racchiuso nell'accademia hash così quando fai param [: academy] ti darà tutti gli attributi per l'oggetto academy – Amar

+0

Oh capito .... Grazie Amar :) –

risposta

10

Alcuni framework lato server, tra cui Ruby on Rails, utilizzare questo tipo di notazione come un'indicazione che dovrebbero costruire i dati in un singolo oggetto lato server (un array associativo, ad esempio mappa, nel caso di Ruby on Rails). Quindi con Ruby on Rails, ad esempio, se avevi name = "user [email]" e name = "user [phone]" e hai inviato il modulo, nel tuo codice Ruby on Rails sul server dovresti recuperare un singolo utente oggetto dalla richiesta e avrebbe le chiavi e-mail e telefono su di esso.

+0

Ok capito ... grazie Dipak !! –

1

È perché lo sviluppatore sta usando array, e quindi sta avvolgendo i nomi in [] parentesi a barre

+3

Nel caso di RoR non indica Notazione delle matrici sul modulo. Indica che l'attributo 'name' appartiene all'oggetto' academy'. Quando il modulo viene rinviato, esegue il mapping degli attributi nell'oggetto 'academy' ai rispettivi attributi. –

0

RoR associa gli attributi dei modelli all'interno del nome del modello, in modo che quando si registra il modulo è possibile assegnare facilmente, come ad esempio:

Academy.create(params[:academy]) 

o

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

(noto anche come incarico di massa).

Se si ispeziona l'oggetto academy con esso viene inviato al modulo nell'hash params, si vedrà che ha un elemento per ciascuna delle cose contenute nelle parentesi quadre.

+0

Ok capito ... Grazie Michael !! –

Problemi correlati