所以我看到text_field和text_area的例子在这样的表格中使用:
<%= form_for :account do |a| %>
Name: <%= a.text_field :name %><br />
Password: <%= a.text_area :password %><br />
Password Confirmation: <%= a.text_field :password_confirmation %><br />
<%= a.submit %>
<% end %>
但是,我不明白其中的区别。初学者Rails开发人员是否有必要了解其中的差异?
我在API中找到了一些我不明白的解释 - 也许有人可以看看,让我知道发生了什么。
对于“text_area”:
text_area(object_name, method, options = {})
Returns a textarea opening and closing tag set tailored for accessing a
specified attribute (identified by method) on an object assigned to the template
(identified by object).
Additional options on the input tag can be passed as a hash with options.
然后,对于“text_field”:
text_field(object_name, method, options = {}) Link
Returns an input tag of the “text” type tailored for accessing a specified
attribute (identified by method) on an object assigned to the template
(identified by object). Additional options on the input tag can be passed
as a hash with options. These options will be tagged onto the HTML as an
HTML element attribute as in the example shown.
答案 0 :(得分:7)
a.text_field :name
正在解析以下html
<input type="text" name="name">
a.text_area :name
会解析为:
<textarea rows="4" cols="50">
</textarea>
取决于传递的选项。
查看它的最简单方法是text_field
为您提供单行文本的位置,其中text_area为多行提供一个区域。
您可以将选项的哈希值传递给text_area
帮助程序,以指定行数和列数。
在上面给出的示例中,使用text_field
或text_area
作为密码是不好的做法,您最好使用a.password_field
答案 1 :(得分:0)
那是一个很好的答案-在谷歌上搜索并在示例中查找位置时很有趣-阅读上面的响应后-我查看了我的代码,意识到这是一个更好的示例
<%= f.label :name %>
<%= f.text_field :name %><br />
<%= f.label :bio %>
<%= f.text_area :bio %><br />
合理,名称只需要一行(除非您有一个超长名称),而bio则需要多行。