我使用gem: devise
通过运行models/user.rb
来创建rails g devise User
,我使用设计通过运行rails g devise:views
来创建视图。现在我要创建controllers/users_controller.rb
。我怎么能这样做?
rails g controller users
这是对的吗?此用户是否与devise User
相关联?我查看了另一个应用,class UsersController < ApplicationController
在那里工作。
我是新人。谢谢你回答。
答案 0 :(得分:2)
您可以使用其生成命令生成devise
个控制器:
rails generate devise:controllers [scope]
scope
表示您要创建它的文件夹,例如,如果是用户,则可以将用户作为范围提供,以便在app/controllers/users/
中生成控制器。
您需要在路由中指定它,以便rails使用您的控制器:
devise_for :users, controllers: { registrations: "users/registrations" }
如果您需要名为users_controller
的控制器,则可以使用以下命令生成它:
rails g controller users
但它不会与devise
连接。 new
的所有操作(create
,update
,edit
,User
)都由设计registrations_controller
处理。因此,如果您需要,可以随时覆盖它们。因此,它将调用您的自定义代码而不是默认代码。
如果您创建自己的users_controller
,它将是普通的rails控制器。只需为它定义路由并在用户文件夹中创建它将起作用的视图。
您可以在设计维基中找到更多信息:
https://github.com/plataformatec/devise#configuring-controllers
希望这有帮助。