2010-08-26 15 views
14

Esiste un modo per specificare un valore per il metodo text_area che verrà inserito tra i tag textarea generati?Valore impostato RoR per area testo

Questo è un esempio del codice che sto usando.

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

risposta

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

Il metodo text_area FormHelper prende un secondo argomento per specificare il metodo che restituisce il corpo di una textarea.

Dalla documentazione linkato sopra:

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

Quindi vorrei scrivere un metodo in un controller che restituisce il corpo della textarea? – Brian

+0

@Brian No, il tuo modello dovrebbe gestirlo. Ad esempio, utilizzando il metodo: text, invocherebbe il metodo 'text' sul modello del messaggio, assumendo @message contiene un'istanza del modello. Come si può vedere dall'esempio, 'text_area (: posta,: il corpo)' invoca il metodo '@ post.body' –

+1

Beh, ho aggiunto un metodo per il mio modello in questo modo def default_text "testing" fine Poi <% =: messaggio,: default_text%> Ma il seguente errore "indefinito metodo' merge' per: default_text: Symbol" – Brian

6

Si deve usare l'attributo HTML 'segnaposto' per mostrare i testi predefiniti nei campi HTML. Questo è l'intero scopo di questo attributo. Il modo di usarlo in ROR è: -

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

Questo è quello che stavo cercando, grazie! – Laser

+1

Questo posizionerà il segnaposto nell'area di testo, tuttavia, non può essere inviato come parametro quando il modulo viene inviato –

Problemi correlati