如何从form_for中的记录中获取标记ID?

时间:2013-02-28 04:41:37

标签: ruby-on-rails ruby

如果我们使用form_for作为记录,则表单标记内的所有输入标记都会自动包含属性id,其值为id="post_3_title"id="post_3_content"

就我而言,我想让这些名字动态创建javascript代码。我想知道是否有办法做到这一点。有什么想法吗?

感谢您的帮助。

1 个答案:

答案 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

似乎我们可以很好地利用它们,但是,它们都是私人方法。我认为另一种解决方案是实现一些这样的辅助方法。