不确定它是否与 Rails 密切相关,似乎主要与 JavaScript 相关,是吗?
您可以查看 RailsCast #197 episode 了解一下。
他所做的是创建一个“模板”字段集,使用元素名称和 ID 中的已知字符串键。 code
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
关联是~子对象的名称,例如“new_rateslot”。
然后,为了在 JavaScript 中添加一组字段,它创建一个副本并将这个已知字符串(“new_rateslot”)替换为生成的唯一 ID。 code
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).up().insert({
before: content.replace(regexp, new_id)
});
}
所以它会创建看起来像
的新字段
input id="ratetag_rateslot_attributes_unique_id" name="ratetag[rateslot_attributes][unique_id]"
因此,它不是生成完全随机的 ID,而是使用有意义的结构,例如 parent_object_name[child_object_name][child_field_name][unique_id] 或其他东西
查看answer 以了解该想法的一些解释