2015-08-12 4 views
0

мне нужно проверить, является ли эта модель может быть сохранена с конкретным Params, но без сохранения егоПроверка корректности PARAMS перед сохранением

event_params = {:user => @current_user.id, :id => id, :value => value} 

Если бы я хотел, чтобы сохранить его, я мог проверить это легко с чем-то вроде

x = e.update_attributes(event_params) if x.true? .... end 

Я читал, что могу использовать assign_attributes, который в основном будет делать то же, что и update_attributes, но без сохранения.

Проблема в том, что с assign_attributes он всегда возвращает ноль, поэтому я думаю, что у меня нет способа проверить, что параметры будут действительны или нет на модели.

ответ

1

Вы можете вызвать метод valid? в любом экземпляре объекта модели, чтобы он прошел проверку и подтвердил, может ли это быть сохранено. Обратите внимание, что это не гарантирует настойчивость, поскольку у вас могут быть другие ограничения на уровне базы данных.

Ссылка: http://api.rubyonrails.org/classes/ActiveRecord/Validations.html#method-i-valid-3F

+0

Allright, я думаю, что с помощью assign_attributes (который всегда возвращает ноль), и после этого .valid? Я могу знать, является ли изменение действительным или нет (в зависимости от того, вернет ли он true/false) – ace

+0

Да, 'object.errors.empty?' Будет true, если он пройдет проверку после вызова 'valid?' –

Смежные вопросы