我注意到在我的 Rails 视图中,一些视图使用(助手?)名为 xxx 而其他地方使用名为 xxx_tag 的视图?
谁能概述两者之间的区别以及我如何知道在特定情况下使用哪个?
我注意到在我的 Rails 视图中,一些视图使用(助手?)名为 xxx 而其他地方使用名为 xxx_tag 的视图?
谁能概述两者之间的区别以及我如何知道在特定情况下使用哪个?
label
(和等价物)可以在表单构建器(调用时产生的对象form_for
)上调用,因此可以知道表单关注的模型实例,将通过for
属性自动将其链接到适当的输入,并且可以使用 I18n 翻译.
label_tag
(和等价物)不绑定到表单,并且用于在更基本的级别生成标签 HTML 标记。它没有那么聪明,你必须给它你想要的所有属性,但有时这就是你所需要的。
f.label
当您在使用创建的表单对象中form_for(...) do |f|
并想要引用模型属性时使用。如果您的应用程序是 i18n-ed,Rails 将使用翻译来显示属性名称。
label_tag
当您不在表单对象中时使用。(或者您在表单对象中,但想为非模型属性创建一个虚拟标签。)
所有的表单输入都有这两种变体,带和不带_tag
后缀,比如select
andselect_tag
等