I've created a patch that lets the "label_tag" and "label" helpers
accept blocks. I've found that it's quite common for labels to include
markup beyond text, and things get messy quickly. Consider
Double bonus for this enhancement -thanks Stephen. I see that you
have also made the "name" attribute optional -fantastic. Now one can
implicitly apply a label to the enclosed input without having to worry
about id matching with the 'for' attribute:
label_tag nil, "Your Name" do
text_field_tag 'name'
end
IMO, the signature of #label_tag (and #label) should evolve to better
support this practice as it reduces the need to keep DOM ids in sync
between the input and the label. Perhaps by counting args to
label_tag and assuming a single string argument is a contextual label.