我正在使用Rails 6应用程序,其中我分离了用户模型和概要文件模型。这引起了一些问题,如这篇帖子Rails 6: Only one profile per user should be created所示 我正在使用Devise进行身份验证,并决定添加一个用户控制器。我希望能够将用户模型作为配置文件使用,并且Devise负责sign_up,sign_in和用户的创建。
我创建了show
,edit
,update
和destroy
的用户控制器,并将其用作“配置文件”。但是,我对以下。如何使Devise与从users_controller
继承的ApplicationRecord
一起工作,这2个冲突不会吗?
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Profile information
t.string :full_name
t.string :city
t.string :bio
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
我将其他字段添加到了DeviseCreateUsers
迁移中。我应该创建一个单独的create_users_migration
吗?我希望用户使用电子邮件和密码进行注册,而不必使用字段:full_name
,:city
,:bio
来创建User实例。
routes.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions'
}
resources :users, only: [:show, :edit, :update, :destroy]
resources :posts do
resource :comments, only: %i[show new create edit update]
end
end
当我遵循Devise文档时:https://github.com/plataformatec/devise#configuring-controllers 我对后续问题有些困惑。我运行命令
$ rails generate devise:controllers users
文档是否不清楚是应该将log_in
,sign_up
那些视图的视图添加到users
文件夹还是仅将new.html.erb
表单的视图添加到{{1} },这是唯一生成的模板。
答案 0 :(得分:-1)
我无法回答您的整个问题,但是我可以告诉您,您无需填写所有字段即可创建用户实例。如果您有其他字段用于注册和修改表单,那将很好。