2012-10-12 57 views
8

Veo mucho tiempo que hay corchetes en el atributo de nombre de la etiqueta de entrada. ¿Para qué sirve y por qué se usa?Corchetes cuadrados en el atributo de nombre de la etiqueta de entrada

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

¿Por qué name = "academy [name]" y no simplemente name = "academy".

Por favor ayuda!

+0

Se toma nombre en hash de academia así que cuando hagas param [: academia] te dará todos los atributos para el objeto academia – Amar

+0

Oh lo tengo .... Gracias Amar :) –

Respuesta

10

Algunos marcos del lado del servidor, incluyendo Ruby on Rails, utilice ese tipo de notación como una indicación de que debe compilar los datos en un solo objeto del lado del servidor (una matriz asociativa, por ejemplo, un mapa, en el caso de Ruby on Rails). Entonces, con Ruby on Rails, por ejemplo, si tuvieras name = "user [email]" y name = "user [phone]" y enviaste el formulario, en tu código Ruby on Rails en el servidor recuperarías un solo usuario objeto de la solicitud y tendría las claves de correo electrónico y teléfono en él.

+0

Ok, lo tengo ... gracias Dipak !! –

1

Se debe a que el desarrollador está utilizando la matriz, y por lo tanto se está terminando los nombres en [] soportes de la barra

+3

En el caso de RoR no indica Notación de matriz en el formulario. Indica que el atributo 'name' pertenece al objeto' academy'. Cuando se reenvía el formulario, asigna los atributos en el objeto 'academy' a los atributos respectivos. –

0

RoR asigna los atributos de los modelos en el nombre del modelo, de manera que cuando se contabiliza la forma puede asignar fácilmente, tales como:

Academy.create(params[:academy]) 

o

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

(también conocido como asignación masiva).

Si inspecciona el objeto academy con él se envía al formulario en el hash params, verá que tiene un elemento para cada una de las cosas que figuran entre los corchetes.

+0

Ok, lo tengo ... ¡Gracias Michael! –

Cuestiones relacionadas