The If Works This dirt was a building before

Stop repeating your labels

I don’t know about you, but I do like a bit of form_for. I’m not so fond of having to repeat myself when writing labels though:

  <% form_for(:post, ...) do |f| %>
    <label for="post_title">Title</label>
    <%= f.text_field(:title) %>
    <label for="post_body">Body</label>
    <%= f.text_area(:body) %>
  <% end %>

You have to write the object name out every time, and the attribute name twice for every label. I’d rather do this:

  <% form_for(:post, ...) do |f| %>
    <%= f.label(:title) %>
    <%= f.text_field(:title) %>
    <%= f.label(:body) %>
    <%= f.text_area(:body) %>
  <% end %>

And now you can too:

script/plugin install

http://svn.jcoglan.com/labelhelper/trunk/label_helper

LabelHelper takes the pain out of writing accessible, usable web forms. You can overwrite the default label text if you like, and add other tag options just like any other Rails tag method. The important thing is it deals with that pesky for attribute so you don’t have to. Enjoy.

I’ve asked for this to be added to Rails, as I figured it’s in keeping with its don’t-repeat-yourself philosophy. No idea how likely it is to be included though.


No Comments Yet


There are no comments yet. You could be the first!

Leave a Comment