我正在开发一个 Rails 6 应用程序,在该应用程序中我将用户模型和配置文件模型分开。这导致了一些问题,如这篇文章Rails 6 所示:每个用户只能创建一个配置文件 我正在使用 Devise 进行身份验证,并决定添加一个用户控制器。我希望能够将用户模型作为配置文件使用,并且 Devise 负责注册、登录和用户的创建。
我将用户的控制器创建为show
、和edit
,并将其用作“配置文件”。但是,我对以下内容感到困惑。如何使 Devise 与继承自的2 不会发生冲突?update
destroy
users_controller
ApplicationRecord
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 的实例。
路线.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
当我遵循设计文档时:https ://github.com/plataformatec/devise#configuring-controllers 我对以下内容有点困惑。我运行命令
$ rails generate devise:controllers users
文档是否不清楚是否应该将这些表单的视图添加到文件夹中log_in
,或者仅将生成的唯一模板的表单添加到文件夹中。sign_up
users
new.html.erb
devise/sessions