如何使用devise创建users_controller.rb?

don*_*iao 1 ruby ruby-on-rails devise

我以前是通过运行来gem: devise创建的,我用devise来通过运行来创建视图的。现在我想创建. 我怎样才能做到这一点?models/user.rbrails g devise Userrails g devise:viewscontrollers/users_controller.rb

rails g controller users
Run Code Online (Sandbox Code Playgroud)

它是否正确?该用户是否与 联系devise User?我查看了另一个应用程序,并class UsersController < ApplicationController在那里工作。

我是新的。谢谢回答。

Dee*_*eep 5

您可以devise使用其生成命令生成控制器:

rails generate devise:controllers [scope]
Run Code Online (Sandbox Code Playgroud)

意味着scope您要创建它的文件夹,就像如果它是供用户使用的,那么您可以为用户提供范围,该范围将在app/controllers/users/.

您需要在路线中指定这一点,以便 Rails 使用您的控制器:

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

如果您需要一个名为users_controllerthen 的控制器,您可以使用以下命令生成它:

rails g controller users
Run Code Online (Sandbox Code Playgroud)

但它不会连接devise。的所有动作(newcreateupdateedit)均由设备User处理。registrations_controller因此,如果您需要的话,您可以随时覆盖它们。因此它会调用您的自定义代码而不是默认代码。

如果您创建自己的控制器,users_controller它将是普通的 Rails 控制器。只需为其定义路由并在用户文件夹中创建视图即可。

您可以在 devise wiki 中找到更多信息:

https://github.com/plataformatec/devise#configuring-controllers

希望这可以帮助。