# Helper to generate element id?

**URL:** <https://www.ruby-forum.com/t/helper-to-generate-element-id/74897>\
**Category:** Rails\
**Created:** [November 7, 2006, 11:00am UTC](https://www.ruby-forum.com/t/helper-to-generate-element-id/74897 "2006-11-07T11:00:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [November 7, 2006, 11:00am UTC](https://www.ruby-forum.com/t/helper-to-generate-element-id/74897/1 "2006-11-07T11:00:27Z")

</div>

Anyone know if there’s a helper to generate an element’s ID given  
object,  
method, id, and the other options taken by form helpers like text\_field?

Thanks!  
Daniel

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [November 7, 2006, 11:00am UTC](https://www.ruby-forum.com/t/helper-to-generate-element-id/74897/2 "2006-11-07T11:00:28Z")

</div>

Whoops! that should read:

Anyone know if there’s a helper to generate an element’s ID given  
object,  
method, INDEX, and the other options taken by form helpers like  
text\_field?

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [November 7, 2006, 11:07am UTC](https://www.ruby-forum.com/t/helper-to-generate-element-id/74897/3 "2006-11-07T11:07:48Z")

</div>

Daniel H. wrote:

> Anyone know if there’s a helper to generate an element’s ID given object,  
> method, INDEX, and the other options taken by form helpers like text\_field?

Yes, there’s add\_default\_name\_and\_id(options), but it’s private to  
class ActionView::Helpers::InstanceTag. So if you want to define  
your own AR form helper you have to do put something like this in lib:

class ActionView  
class Base  
def my\_field(object\_name, method, options = {})  
Helpers::InstanceTag.new(object\_name, method,  
self).to\_my\_tag(self, options)  
end

class Helpers::InstanceTag  
def to\_my\_tag(template, options = {})  
options = options.stringify\_keys  
add\_default\_name\_and\_id(options)  
…  
options[‘id’] # e.g., just return the id, per your question  
end  
end  
end

–  
We develop, watch us RoR, in numbers too big to ignore.
