Ich schreibe ein Formular, das sich mit mehreren Modellen beschäftigt. Einige Beispiele dafür, wie dies zu tun ist, verwenden ActionView::Helpers::FormHelper::label, und einige verwenden ActionView::Helpers::FormTagHelper::label_tag, und ich verstehe nicht wirklich den Unterschied.Was ist der Unterschied zwischen FormHelper :: label und FormTagHelper :: label_tag?
In meinem speziellen Fall scheinen beide in der gleichen Ausgabe führen:
<% 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>
...
Renders:
<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>
Das Label Helfer scheint sinnvoller zu sein, weil vermutlich dort einige sind extra Dinge, die es tun kann, weil es das Modell und die Eigenschaft kennt, die es beschriftet, aber ich kann nichts finden, um das zu unterstützen. Gibt es einen praktischen Unterschied zwischen den beiden? Wann sollte ich einen Helfer anstelle des anderen verwenden?