나는 중성미자의 충고에 따라 결국 레일 코드를 조금 더 보았다. 나는 InstanceTag
클래스의 개인적인 방법 몇 개를 꺼내서 조금씩 옮겼습니다. 나는 원숭이 최선의 해결책이 될 수 없습니다 ActiveRecord::Base
,에이 패치,하지만 지금 작동 : 네, 잠시 동안 InstanceTag 주위에 찌르지 않았다
def create_tag_id(method_name)
object_name = ActionController::RecordIdentifier.singular_class_name(self)
"#{sanitized_object_name(object_name)}_#{sanitized_method_name(method_name.to_s)}"
end
private
def sanitized_object_name(object_name)
object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "")
end
def sanitized_method_name(method_name)
method_name.sub(/\?$/,"")
end
나는 똑같은 일을했지만 모델에 그 메소드를 두는 대신 폼 빌더를 대체하고 확장했다. http://stackoverflow.com/questions/4819696/how-do-you-get-the-rails-generated- id-of-a-form-reference-in-javascri/5432558 # 5432558 – ilpoldo