0

我正在开发一个 Rails 6 应用程序,在该应用程序中我将用户模型和配置文件模型分开。这导致了一些问题,如这篇文章Rails 6 所示:每个用户只能创建一个配置文件 我正在使用 Devise 进行身份验证,并决定添加一个用户控制器。我希望能够将用户模型作为配置文件使用,并且 Devise 负责注册、登录和用户的创建。

我将用户的控制器创建为show、和edit,并将其用作“配置文件”。但是,我对以下内容感到困惑。如何使 Devise 与继承自的2 不会发生冲突?updatedestroyusers_controllerApplicationRecord

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_upusersnew.html.erbdevise/sessions

4

1 回答 1

-1

我无法回答您的整个问题,但我可以告诉您,您不需要填写所有字段来创建用户实例。如果您有不同的字段用于注册和编辑表单,那将可以正常工作。

于 2019-06-17T03:58:45.633 回答