module ActionView::RecordIdentifier

def dom_id(record, prefix = nil)

dom_id(Post.new, :custom) # => "custom_post"
dom_id(Post.find(45), :edit) # => "edit_post_45"

If you need to address multiple instances of the same class in the same view, you can prefix the dom_id:

dom_id(Post.new) # => "new_post"
dom_id(Post.find(45)) # => "post_45"

If no id is found, prefix with "new_" instead.
The DOM id convention is to use the singular form of an object or class with the id following an underscore.
def dom_id(record, prefix = nil)
  if record_id = record_key_for_dom_id(record)
    "#{dom_class(record, prefix)}#{JOIN}#{record_id}"
  else
    dom_class(record, prefix || NEW)
  end
end