如何生成devise gem的注册控制器

Stu*_*ins 2 ruby-on-rails devise

我已经设置了 Devise,我已经在 user.rb 文件中设置了以下代码

  def self.create_auto_password
    generated_password = Devise.friendly_token.first(8)
    self.create(password: generated_password, password_confirmation: generated_password)
  end
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过运行来生成注册控制器

rails generate devise:controllers -c registrations

以及其他一些变体,但它不会生成...在 Devise 中创建注册控制器的正确命令是什么?

pow*_*wer 5

只需手动创建控制器并使其继承自 Devise 即可。例如:

class Users::RegistrationsController < Devise::RegistrationsController
  # Override the action you want here.
end
Run Code Online (Sandbox Code Playgroud)

该控制器应位于 app/controllers/users/registrations_controller.rb 中

并在你的路线中提及它。

devise_for :users, controllers: { registrations: "users/registrations" }
Run Code Online (Sandbox Code Playgroud)

如果您只想通过命令生成它,则需要从 master 分支添加设备 gem,因为该生成器存在于该分支上。

gem 'devise', git: 'https://github.com/plataformatec/devise'
Run Code Online (Sandbox Code Playgroud)

正如github_issue中提到的