Я пытаюсь сохранить некоторые дополнительные данные вместе со стандартным сообщением об ошибке в пользовательском валидаторе в Rails 3.
Например, (игнорируя встроенные валидаторы) предположим, что я хотел проверить, чтобы увидеть,сообщение дублируется перед сохранением.Я мог бы написать свой собственный метод проверки следующим образом:
class Post < ActiveRecord::Base
# prevent duplicate posts
validate do |post|
duplicates = Post.find_all_by_body(body)
errors.add_to_base("Post is a duplicate!") if duplicates.length
# something like this is desired:
# errors.add_to_base("Post is a duplicate",
# :extra => { :duplicates => duplicates })
end
end
Это позволит пользователю знать, что есть дубликаты, но наряду с добавлением сообщения об ошибке я также хотел бы сохранить дубликаты, чтобы они могли отображаться вПользователь.Как сохранить список повторяющихся записей, извлеченных во время проверки, чтобы он ассоциировался с ошибками записи для поля body
и был доступен для моего просмотра?
Более простым примером может быть проверка длины: еслиполе превышает его максимальную длину, как я могу сохранить максимальную длину вместе с сообщением об ошибке, не просто вставляя его в сообщение, как это делает Rails в настоящее время?