2009-05-04 4 views
0

Я ищу для проверки правильности формы ajax с помощью jquery. Все на месте, и я могу вернуть мои ошибки в объект JSON, который выглядит примерно так:рельсы jquery ajax form validation

errors => { 
"first_name": "cannot be blank", 
"password": "cannot be blank", 
"last_name": "cannot be blank", 
"email": "cannot be blank"} 

Это прекрасно работает, если я просто хочу, чтобы отобразить сообщение об ошибке в верхней части. Однако я также хотел бы сделать что-то похожее на встроенный в rails valdation, где он окружает, и поля ошибок с полем fieldWithErrors. (на самом деле я просто хочу добавить класс 'fieldWithErrors' к входу ошибки)

Я не уверен, где именно волшебство рельсов, которое находит соответствующие поля ошибок и добавляет ошибку div, но я ищу этот код, чтобы я мог вернуть объект json с сообщением об ошибке и фактический идентификатор поля ошибки, чтобы я мог обновить его соответствующим классом. Конечно, я могу просто добавить имя объекта (пользователь в этом случае) к полю, которое возвращается в объекте json (например, «first_name»), однако я хочу, чтобы это была общая функция, которая работает для любой формы, которая i иметь.

Может ли кто-нибудь указать мне место, где генерируется фактический идентификатор поля ошибки. Мне бы хотелось сделать что-то вроде @ object.errors [: first_name] .field_id, чтобы я мог вернуть объект json, подобный предыдущему, за исключением того, что мой ключ «first_name» на самом деле «user_first_name», идентификатор поле ошибки.

ответ

1

взгляд в actionpack/Библиотека/ACTION_VIEW/хелперов/form_helper.rb, чтобы увидеть, как Rails делает это

Вот методы в form_helper.rb, которые определяют идентификатор тега

def tag_id 
     "#{sanitized_object_name}_#{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 
+0

Спасибо за указание мне в правильном направлении. Вы знакомы с файлом form_helper? Я вижу некоторые, где есть метод tag_id, но это в классе InstanceTag. Я не могу понять, как превратить атрибуты объекта @user в тег tag_id – brad