0

text_area在 Ruby on Rails 中:和text_area_tag助手有什么区别?

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

4

5 回答 5

1

不同之处在于,如果您使用form_for, 将ActiveRecord对象传递给它并传递,比方说,f阻止,例如使用起来更方便

<%= f.text_area :body %>

因为它会自动设置正确的 id、name 和 value。这些帮助器在处理长 HTML 文本输入方面没有区别,但是如果你想将它用于ActiveRecord对象形式,你应该使用它,text_area因为正如我所说,它更方便。

于 2013-08-13T09:39:02.213 回答
1

有两种类型的表单助手:专门使用模型属性的和不使用的

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>

text_area_tag不依赖于 Active Record 对象的Ref

text_area_tag 'post'

将创建以下

<textarea id="post" name="post"></textarea>
于 2013-08-13T09:40:36.807 回答
0

为访问分配给模板(由对象标识)的对象上的指定属性(由方法标识)而定制的 text_area 集 text_area(:post, :body, :cols => 20, :rows => 40) 生成:

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

和 text_area_tag 'post' 生成

<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

于 2013-08-13T09:40:07.453 回答
0
<%= f.text_area :attribute_name %>

<%= text_area_tag :any_name, :any_value %>
于 2013-08-13T09:42:16.973 回答
0

如果您使用form_for(始终推荐)呈现表单,则使用

<%= f.text_area ....

否则你必须使用

<%= text_area_tag ....

两者都将提供相同的服务,并且对输入数据(文本)大小没有影响

于 2013-08-13T10:01:22.623 回答