2012-03-12 18 views
12

Estoy cambiando mi aplicación a usar simple_form pero estoy un poco confundido acerca de cómo mostrar una entrada de texto. Por ejemplo, cuando hago lo siguiente:entrada de texto simple_form

f.input :foobar # <textarea name = "model[foobar]"></textarea> 

me sale un área de texto en lugar en lugar en la entrada w/un tipo de texto. ¿Cómo puedo forzar a simple_form a generar una entrada de texto?

Respuesta

44

que está ocurriendo porque el campo es una columna text en la base de datos, en lugar de string/varchar/etc, se puede reemplazar el valor predeterminado de este modo:.

f.input :foobar, :as => :string 

Usted puede leer acerca de todas las asignaciones en el simple_form readme en "Asignaciones/Entradas disponibles".

+1

Gracias por la información. Ojalá estuviera en el Léame. El archivo Léame ni siquiera menciona la palabra "textarea" o la opción "as:: string" en absoluto. –

+0

Enviado una solicitud de extracción: https://github.com/plataformatec/simple_form/pull/855 –

9

Voy a actualizar la respuesta a esta pregunta, porque la nueva manera de hacer eso con simple_form es así:

f.input :foobar, as: :text 

Como se puede ver, utilizando el "como:: texto" utilizará un text_area campo, pero si desea modificar la cantidad de filas y columnas que debe hacerlo de esta manera:

f.input :foobar, as: :text, input_html: {rows: 10, cols: 10} 

Aquí se puede ver la documentación de la gema:

https://github.com/plataformatec/simple_form

+1

Puede cambiar desde hashrockets a asignación de símbolos y tener 'f.input: foobar, as:: text, input_html: {rows: 10 , cols: 10} ' – Epigene

+0

actualizado, ahora con la nueva sintaxis hash; D –

Cuestiones relacionadas