gpt4 book ai didi

ruby-on-rails - Devise 生成的代码在哪里?

转载 作者:数据小太阳 更新时间:2023-10-29 08:26:37 24 4
gpt4 key购买 nike

我将 Devise gem 安装到我的 Rails 应用程序中,然后运行 ​​rails generate devise:installrails generate devise User

无需我做任何事情,url users/sign_up 已经有一个 View 。问题是,我找不到正在任何地方呈现的模板。它肯定不在 app/views/users 下。我在页面上选择了一些文本并在我的应用程序中进行了搜索,但得到了 0 个结果。

然后我尝试使用表单注册,但出现以下错误:

NoMethodError in Devise::RegistrationsController#create
undefined method `current_sign_in_ip' for #<User:xxxxxxxxxxx>

然后我搜索了这个 Controller ,但我的应用程序中没有 RegistrationsController,也没有 Devise 文件。我要查找的文件也不是由我上面提到的两个命令生成的。

Devise documentation似乎没有说明 Devise 代码保存在何处

代码是否在我的应用程序中?我很困惑。

最佳答案

使用 Devise,您可以 generate the templates Devise 依赖于使用以下命令进行登录、密码重置等操作:

rails generate devise:views

这将在您的 views 目录中创建 Devise 模板的副本。

对于 Controller ,您可以access/override their functionality通过在您自己的代码中对它们进行子类化。它们在 Devise 命名空间下:

class NewRegistrationsController < Devise::RegistrationsController
# do stuff here
end

然后指向路由器使用这个新的 Controller :

devise_for :users, controllers: { registrations: 'new_registrations' }

Controller 的代码可以在 Devise 的 source code 中找到。 - 您可以引用它以更好地了解每个 Controller 在做什么。

希望对您有所帮助!

关于ruby-on-rails - Devise 生成的代码在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com