2010-08-26 49 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