我正在写一个处理多个模型的表单.一些如何执行此操作的示例使用ActionView :: Helpers :: FormHelper :: label,有些使用ActionView :: Helpers :: FormTagHelper :: label_tag,我真的不明白其中的区别.
在我的特定情况下,两者似乎都会产生相同的输出:
<% form_for :post, :url => { :action => 'create' } do %>
<p>
<%= label_tag 'post_type' %><br />
<%= text_field :post, :post_type %>
</p>
<p>
<%= label :post, :parent_post_id %><br />
<%= text_field :post, :parent_post_id %>
</p>
...
Run Code Online (Sandbox Code Playgroud)
呈现:
<p>
<label for="post_type">Post type</label><br />
<input id="post_post_type" name="post[post_type]" size="30" type="text" />
</p>
<p>
<label for="post_parent_post_id">Parent post</label><br />
<input id="post_parent_post_id" name="post[parent_post_id]" size="30" type="text" />
</p>
Run Code Online (Sandbox Code Playgroud)
标签帮助器似乎更有用,因为它可能会有一些额外的东西,因为它知道它标记的模型和属性,但我找不到任何支持它的东西.这两者之间有实际区别吗?我什么时候应该使用一个助手而不是另一个?
Joh*_*ley 12
Rails提供了两种类型的表单助手:那些专门用于模型属性的表单助手和那些没有表单助手的表单助手.*_tag帮助程序用于创建不依赖于分配给模板的Active Record对象的表单标记.
虽然label您所显示的元素生成标记没有区别,但在您的情况下,您应该使用label表单助手与您对其他表单助手的使用一致,并且因为它会自动将for属性设置为正确的ID.相关的文本字段元素.
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |