2010-08-26 73 views
14

是否有一種方法可以爲將要放置在生成的textarea標籤之間的text_area方法指定一個值?文本區域的RoR設置值

這是我使用的代碼的一個例子。

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

回答

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

的表單助手text_area方法採用第二參數來指定它返回一個textarea的身體的方法。

從上面鏈接的文檔:

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

所以我會在控制器中寫一個方法來返回textarea的主體? – Brian 2010-08-26 22:45:21

+0

@Brian不,你的模型應該處理這個問題。例如,使用方法:text,將在您的消息模型上調用方法「text」,假定@message包含模型的一個實例。 正如你可以看到的例子,'text_area(:帖子,:體)'調用方法'@ post.body' – 2010-08-26 22:51:54

+1

好吧,我添加了一個方法,我的模型,像這樣 高清default_text 「測試」 結束 然後<%=:消息:default_text%> 但出現以下錯誤 「未定義的方法'的合併」:default_text:符號」 – Brian 2010-08-26 23:15:00

6

你應該使用顯示HTML字段默認文本的「佔位符」 HTML屬性。這就是這個屬性的全部目的。在ROR中使用它的方式是: -

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

這就是我一直在尋找的,謝謝! – Laser 2015-01-29 09:25:51

+1

這會將佔位符放置在文本區域中,但是在提交表單時不能將其作爲參數提交 – 2016-03-23 15:34:55