Rails: проверка связи после сохранения?
у меня естьUser
модель, которая имеет многоroles
, Роли содержитuser_id
поле, которое я хочуvalidate_presence_of
Проблема заключается в следующем: если я назначаю роль пользователю при создании, проверка завершается неудачей, потому что user_id не установлен. Сейчас яделать хочу проверить, что user_id существует, но мне нужно сохранить пользователя перед проверкой.
Код в настоящее время выглядит так:
@user = User.new(params[:user])
@user.roles << Role.new(:name => 'Peon') unless @user.has_roles?
if @user.save
# ...
Единственное, что я могу придумать, чтобы обойти эту проблему, это либо отключить проверку, чего я не хочу делать, либо выполнить двойное сохранение в БД, что не совсем эффективно.
Какой стандартный способ решения этой проблемы?