У меня есть модель под названием «Пользователь», и я использую приложение для создания учетных записей. Когда какой-то пользователь подписывается, ему предлагается вставить адрес электронной почты и пароль, после чего я хочу перенаправить страницу в форму создания пользователя, где пользователь будет вставлять больше деталей, таких как имя, возраст и т. Д. ... И пользователь model будет иметь поле account_id, которое будет инициализировано current_account.id при создании. Я хотел бы знать, что это лучший способ сделать это.Как я могу связать пользователя с учетной записью с помощью программы?
ответ
У меня был бы user_id в классе Account, поэтому учетная запись принадлежит Пользователю, а не наоборот. Это для ассоциаций, чтобы иметь больше смысла, так как:
моделей/user.rb
class User
has_one :account
модели/account.rb
class Account
belongs_to :user
Убедитесь, что вы генерировать миграция для добавления user_id в таблицу учетных записей!
Затем вам необходимо переопределить контроллер регистрации разработки. Сначала мы редактируем маршруты - вы увидите, что я также включил: account в качестве вложенного ресурса (единственного числа). Таким образом, URL-адрес будет лучше, например/пользователей/6/счет/редактировать
конфигурации/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
resources :users do
resource :account
end
А затем создать контроллер. Мы рассмотрим два метода здесь: действие «создать», в котором мы будем создавать учетную запись пользователей в ней. Затем нужно переопределить метод after_sign_up_path_for для перенаправления на страницу редактирования учетной записи. ** Примечание. Это предназначено для разработки 3.0.3. Если вы используете другую версию, посмотрите на их github для кода регистрации.
Контроллеры/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def create
build_resource(sign_up_params)
if resource.save
resource.build_account(:user_id => resource.id) # code to create account
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_up(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
end
protected
# override the after signup path to your desired route, e.g
def after_sign_up_path_for(resource)
edit_user_account_path(resource.id)
end
end
- 1. Как связать пользовательскую запись объекта с учетной записью пользователя
- 2. Правильный способ связать существующего пользователя с учетной записью facebook
- 3. Связать рельсы с учетной записью для леса
- 4. Интеграция моделей Django с учетной записью пользователя
- 5. MongoDB Войти с учетной записью пользователя
- 6. Удаление сотрудничества с учетной записью пользователя
- 7. учетная запись домена с учетной записью пользователя
- 8. Модуль импорта с другой учетной записью пользователя
- 9. Олицетворять пользователя Google с учетной записью службы
- 10. Синхронизация данных пользователя с учетной записью Google
- 11. Папка, сопоставленная с учетной записью пользователя
- 12. Как сопоставить несколько социальных логинов с учетной записью одного пользователя?
- 13. Как связать нескольких поставщиков Auth с учетной записью Firebase?
- 14. Как я могу связать пользователя с корзиной?
- 15. Постоянно связать учетную запись веб-сайта с учетной записью facebook
- 16. Связать новый логин Google или Facebook с существующей учетной записью
- 17. сколько приложений я могу создать с одной учетной записью Twitter.
- 18. Использование Redemption с другой учетной записью пользователя с сервера
- 19. Могу ли я использовать CloudKit с другой учетной записью iCloud
- 20. Как я могу управлять своей учетной записью Instagram из Python?
- 21. Проблема с аутентификацией пользователя с действительной учетной записью Google Analytics
- 22. Как подключить пользователя Android с его учетной записью на сайте
- 23. Как подключиться к AWS Console с учетной записью пользователя IAM?
- 24. Страницы с учетной записью пользователя Magento разрываются, как отлаживать?
- 25. Как создать Android-приложение с учетной записью на устройстве пользователя?
- 26. Как отправить отправленное письмо с учетной записью
- 27. , если я зарегистрирую сайт с учетной записью facebook, что может сделать сайт с моей учетной записью?
- 28. запустить программу под ограниченной учетной записью пользователя
- 29. Может ли TFS работать с локальной учетной записью пользователя?
- 30. Angularfire2 Объединить анонимного пользователя с учетной записью Facebook/Google
Я просто играл с этим на месте, и они были некоторые незначительные ошибки и упущения. Я обновил свой ответ с помощью проверенного кода. – RichardAE
Большое спасибо! – pMpC