如果我们使用form_for
作为记录,则表单标记内的所有输入标记都会自动包含属性id
,其值为id="post_3_title"
,id="post_3_content"
。
就我而言,我想让这些名字动态创建javascript代码。我想知道是否有办法做到这一点。有什么想法吗?
感谢您的帮助。
答案 0 :(得分:1)
我在actionpack-3.2.12/lib/action_view/helpers/form_helper.rb:1218
找到了源代码。
def tag_name_with_index(index)
"#{@object_name}[#{index}][#{sanitized_method_name}]"
end
def tag_id
"#{sanitized_object_name}_#{sanitized_method_name}"
end
def tag_id_with_index(index)
"#{sanitized_object_name}_#{index}_#{sanitized_method_name}"
end
def sanitized_object_name
@sanitized_object_name ||= @object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "")
end
def sanitized_method_name
@sanitized_method_name ||= @method_name.sub(/\?$/,"")
end
似乎我们可以很好地利用它们,但是,它们都是私人方法。我认为另一种解决方案是实现一些这样的辅助方法。