Hi devs, The template compiler for elements automatically sets the instance variable @id based on either an explicit id attribute in the html or the name of the class. e.g. class LoginBox def render %~<div id="@id">...</div>~ end end <LoginBox /> <LoginBox /> <LoginBox /> <LoginBox id="my_id"/> <LoginBox id="my_id"/> This will result in <div id="login_box">...</div> <div id="login_box">...</div> <div id="login_box">...</div> <div id="my_id">...</div> <div id="my_id">...</div> Also, when nesting elements the children are kept in a Dictionary and the @id is used as lookup key, so in the above example only the third and the fifth box would be visible for the parent. The attached patch changes the element compiler to make ids unique by adding a number where necessary, so the above example would become <div id="login_box">...</div> <div id="login_box_1">...</div> <div id="login_box_2">...</div> <div id="my_id">...</div> <div id="my_id_1">...</div> Are there any objections to this being applied? Thank you! (ab)
on 2007-11-27 06:42