2010-08-26 19 views
14

¿Hay alguna forma de especificar un valor para el método text_area que se colocará entre las etiquetas textarea generadas?RoR valor establecido para textarea

Este es un ejemplo del código que estoy usando.

<% remote_form_for ... do |f| %> 
     <%= f.text_area :message %> 
     <%= f.submit 'Update' %> 
<% end %> 

Respuesta

19
<% remote_form_for ... do |f| %> 
     <%= f.text_area :message, :value => "my default value" %> 
     <%= f.submit 'Update' %> 
<% end %> 
4

El FormHelper text_area método toma un segundo argumento para especificar el método que devuelve el cuerpo de un área de texto.

De la documentación vinculado anteriormente:

text_area(:post, :body, :cols => 20, :rows => 40) 
    # => <textarea cols="20" rows="40" id="post_body" name="post[body]"> 
    #  #{@post.body} 
    # </textarea> 

    text_area(:comment, :text, :size => "20x30") 
    # => <textarea cols="20" rows="30" id="comment_text" name="comment[text]"> 
    #  #{@comment.text} 
    # </textarea> 

    text_area(:application, :notes, :cols => 40, :rows => 15, :class => 'app_input') 
    # => <textarea cols="40" rows="15" id="application_notes" name="application[notes]" class="app_input"> 
    #  #{@application.notes} 
    # </textarea> 

    text_area(:entry, :body, :size => "20x20", :disabled => 'disabled') 
    # => <textarea cols="20" rows="20" id="entry_body" name="entry[body]" disabled="disabled"> 
    #  #{@entry.body} 
    # </textarea> 
+0

Entonces, ¿escribiría un método en un controlador que devuelva el cuerpo del área de texto? – Brian

+0

@Brian No, su modelo debe manejar eso. Por ejemplo, usando el método: texto, invocaría el método 'text' en su modelo de mensaje, asumiendo que @message contiene una instancia de su modelo. Como se puede ver en el ejemplo, 'text_area (poste,: cuerpo)' invoca el método '@ post.body' –

+1

Bueno, he añadido un método para mi modelo como tal def default_text "probar" terminar Entonces <% =: mensaje,: default_text%> Pero el siguiente error "indefinido método mERGE para: default_text: Símbolo" – Brian

6

Debería utilizar el atributo HTML 'marcador de posición' para mostrar textos predeterminados en campos HTML. Ese es el propósito de este atributo. La forma de usarlo en ROR es: -

<%= f.text_area :message, :placeholder => "my default value" %> 
+0

Eso es lo que estaba buscando, ¡gracias! – Laser

+1

Esto colocará el marcador de posición en el área de texto, sin embargo, no se puede enviar como un parámetro cuando se envía el formulario –

Cuestiones relacionadas