У меня это работало с использованием Laravel, но я сейчас пытаюсь собрать его в приложении Rails.
В основном я сейчас настроил новое приложение Rails со следующими шагами:
rails new MyApp
- Установленное устройство
- Добавить устройство в Gemfile
bundle
rails g devise:install
- Настройка пользовательских контроллеров devise и представлений
rails g devise:controllers users
rails g devise:views users
- Добавлены настраиваемые поля для пользователя devise и обновлено new / editviews
До этого момента все работает нормально.Я могу войти / выйти из системы и правильно общаться с базой данных.
ОБНОВЛЕНИЕ
Первая часть моего вопроса
КакОтвет, приведенный Сакибом Шахзадом, состоит в том, чтобы привести строку, относящуюся к пользователю, на определенную страницу.
Для всех интенсивных целей я настроил контроллер Home и связанный вид, который позволяет мне вводить всю связанную информацию.
Это вторая часть
Теперь я хочу создать для пользователя строку в отдельной таблице одновременно с созданием пользователя.
user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_one :order
end
order.rb:
class Order < ApplicationRecord
belongs_to :user
end
миграция заказа:
class CreateOrders < ActiveRecord::Migration[5.2]
def change
create_table :orders do |t|
t.belongs_to :user
...
end
Итак, предположим, что я использую devise ... Как при создании пользователя можно создать необходимую строку вТаблица заказов, чтобы после регистрации они могли сразу увидеть информацию о своем заказе.(Очевидно, он будет просто отображать значения по умолчанию для полей, поскольку они еще ничего не редактировали)
Итак ...
- Человек заполняет регистрационную информацию на странице регистрации.
- Пользователь нажимает кнопку отправки
- В таблицах пользователей и заказов появляется новая строка для нового пользователя (создается пользователь и заказ пользователя)
- Человек немедленно перенаправляется на свою домашнюю страницу, котораяпоказывает их значения заказа