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
  # ...

Единственное, что я могу придумать, чтобы обойти эту проблему, это либо отключить проверку, чего я не хочу делать, либо выполнить двойное сохранение в БД, что не совсем эффективно.

Какой стандартный способ решения этой проблемы?

Ответы на вопрос(4)

Ваш ответ на вопрос