Ruby on Rails:text_area和text_area_tag助手之间的区别?

时间:2013-08-13 09:26:22

标签: ruby-on-rails

Ruby on Rails中的

text_areatext_area_tag助手之间有什么区别?

更重要的是,我想知道哪一个更适合长HTML文本输入(特别是在我的情况下,博客帖子)??

5 个答案:

答案 0 :(得分:1)

区别在于,如果您使用form_for,请将ActiveRecord对象传递给它并传递,例如f来阻止,例如,使用它会更方便

<%= f.text_area :body %>

因为它会自动设置正确的ID,名称和值。 这些帮助程序在处理长HTML文本输入时没有区别,但是如果要将它用于ActiveRecord对象表单,则应该使用text_area,因为正如我所说,它更方便。

答案 1 :(得分:1)

有两种类型的表单助手:具体为work with model attributesthose that don‘t的表单助手。

Ref text_area专门用于模型

text_area(:post, :body, :cols => 20, :rows => 40)

这将创建以下html

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

Ref text_area_tag不依赖于Active Record objec

text_area_tag 'post'

将创建以下

<textarea id="post" name="post"></textarea>

答案 2 :(得分:0)

text_area集,用于访问分配给模板的对象(由对象标识)的指定属性(由方法标识) text_area(:post,:body,:cols =&gt; 20,:rows =&gt; 40)生成:

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

和text_area_tag'发布'生成

<textarea id="post" name="post"></textarea>

有关详细信息,请查看: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/text_area_tag http://apidock.com/rails/ActionView/Helpers/FormHelper/text_area

答案 3 :(得分:0)

<%= f.text_area :attribute_name %>

<%= text_area_tag :any_name, :any_value %>

答案 4 :(得分:0)

如果您使用form_for(始终建议)渲染表单,请使用

<%= f.text_area ....

否则你必须使用

<%= text_area_tag ....

要么服务相同而且对输入数据(文本)大小没有影响