私は複数のモデルを扱っているフォームを書いています。これを行う方法のいくつかの例はActionView::Helpers::FormHelper::labelを使用し、いくつかはActionView::Helpers::FormTagHelper::label_tagを使用していますが、私は実際にその違いを理解していません。私の特定のケースでFormHelper :: labelと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>
...
レンダリング:
<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>
ラベルヘルパーは、おそらくいくつかの余分があるので、より有用であると思われますそれはモデルとそれがラベルを貼っているプロパティを知っているのでできることだが、それを裏付けるものは何も見つけられない。両者には実用的な違いがありますか?他のヘルパーを使う代わりに、いつヘルパーを使うべきですか?