Я хочу переопределить Devise's RegistrationsContollers
'создать действие так, чтобы, когда пользователь подписывается, я могу связать модель UserProfile
с этим пользователем.Как добавить UserProfile пользователю при регистрации пользователя? (Devise, Rails 3)
Итак, следуя инструкциям в DEViSE Readme, я переопределить действие:
#File app/controllers/registrations_controller.rb:
class Users::RegistrationsController < Devise::RegistrationsController
def create
# some code here..
self.user_profiles.build #Error (no method `user_profiles`)
current_user.user_profiles.build #Error (current_user is nil)
some other way???
end
end
#File routes.rb:
devise_for :users, :controllers => { :registrations => 'users/registrations' }
Разрабатывают создает запись в таблице users
, но как я могу связать UserProfile
с этой записью?
Я пробовал искать, но я просто не могу заставить это работать! Буду признателен за любую оказанную помощь.
(я в настоящее время используют Завещание 1.1.5 на рельсы 3.0.3)
решенных:
Добавление раствора в пользу других:
#File app/controllers/registrations_controller.rb:
class Users::RegistrationsController < Devise::RegistrationsController
def create
super
@user.build_user_profile
@user.user_profile.some_data = 'abcd'
@user.save!
end
end
Спасибо! который работает (@ user.build_user_profile). Кроме того, мне нужно создать профиль в контроллере (а не в модели), потому что требуется некоторая информация от пользователя во время регистрации (например, адрес). – Zabba 2010-11-29 19:24:39