У меня есть модель User
с электронной почтой и именем пользователя.
У меня есть вложенная модель Profile
с именем. >, позиция и описание.
Когда User
регистрируется, все (кроме описания) требуется. У меня есть единственная форма, которая отлично работает с этой вложенной моделью.
Теперь приходит Oauth: я хочу, чтобы посетители могли регистрироваться, используя свою учетную запись GitHub.
Этот метод (RailsCast #235) позволяет мне инициализировать новый User
и автоматически заполнять 4 атрибута User
: провайдер, uid, адрес электронной почты и имя пользователя. .
def self.from_omniauth(auth)
where(auth.slice(:provider, :uid)).first_or_initialize do |user|
user.provider = auth.provider
user.uid = auth.uid
user.email = auth.info.email
user.username = auth.info.nickname
end
end
Но я также хотел бы инициализировать вложенный профиль с именем и, в конечном итоге, с позицией, заполненным информацией из хэша, который я получаю с GitHub.
Я пытался вставить что-то вроде user.build_profile(:name => auth.info.name)
или user.profile.name = auth.info.name
, но не могу найти, как создать этот вложенный элемент.