#dom_id

February 26th, 2007

class ActiveRecord::Base
  def dom_ids
    @dom_ids ||= Hash.new
  end

  def dom_id(*suffixes)
    name = suffixes.empty? ? 'element' : suffixes.collect(&:to_s).join('_')
    dom_ids[name] = [self.class.name.underscore, self.id, *suffixes].compact.join('_')
  end
end
I like it. It takes the idea of DOM id generation from Sails and makes it more universal. Example usage:
1
2
3
4
5
<fieldset id="<%= @object.dom_id %>">
  <legend id="<%= @object.dom_id :title %>"><%=h @object.title %></legend>
  ...
</fieldset>
<script>new ClientSideController(<%= @object.dom_ids.to_json %>)</script>

Sorry, comments are closed for this article.